Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] Erro para gerar a lista de jogos.

Ao conectar a lista prepara_banco com o index consta esse erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Esse seria o meu código:

from flask import Flask, render_template,request, redirect, session,flash, url_for
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.secret_key = 'Agoti'

app.config['SQLALCHEMY_DATABASE_URI'] = \
   '{SGBD}://{user}:{password}@{servidor}/{database}'.format(
       SGBD = 'mysql+mysqlconnector',
       user = 'root',
       password = '123',
       servidor = 'localhost',
       database = 'jogoteca'
   )
db = SQLAlchemy(app)

class Jogos(db.Model):
   id = db.Column(db.Integer, primary_key = True, autoincrement = True)
   nome = db.Column(db.String(50), nullable = False)
   categoria = db.Column(db.String(40), nullable=False)
   console = db.Column(db.String(20), nullable=False)

   def __repr__(self):
       return '<Name %r>' % index

class Usuarios(db.Model):
   nickname = db.Column(db.String(8), primary_key = True)
   nome = db.Column(db.String(20), nullable = False)
   senha = db.Column(db.String(100), nullable=False)

   def __repr__(self):

       return '<Name %r>' % self.name

@app.route('/')
def index():
   lista = Jogos.query.order_by(Jogos.id)
   return render_template('index.html', titulo='Jogos', jogos= lista)

@app.route('/novo')
def novo():
   if 'usuario_logado' not in session or session['usuario_logado'] == None:
       flash('É nescessario realizar o login')
       return redirect(url_for('login', proxima=url_for('novo')))
   return render_template('novo.html', titulo = 'Novo jogo')

@app.route('/criar', methods = ['POST',])
def criar():
  nome = request.form['nome']
  categoria = request.form['categoria']
  console = request.form['console']
  jogo = Jogo(nome, categoria, console)
  lista.append(jogo)
  return redirect(url_for('index'))

@app.route('/login')
def login():
   proxima = request.args.get('proxima')
   return render_template('login.html', proxima = proxima)


@app.route('/autenticar', methods=['POST',])
def autenticar():
   if request.form['usuario'] in usuarios:
       usuario = usuarios[request.form['usuario']]
       if request.form['senha'] == usuario.senha:
           session ['usuario_logado'] = usuario.nickname
           flash(usuario.nickname + ' logado com sucesso!')
           proxima_pagina = request.form['proxima']
           return redirect(proxima_pagina)
   else:
       flash('Usuario incorreto')
       return redirect(url_for('login'))

@app.route('/logout')
def logout():
   session['usuario_logado'] = None
   flash('Logout efetuado com sucesso')
   return redirect(url_for('index'))

app.run(debug=True)
1 resposta
solução!

Descobri o erro... Estava retornando a ao index.html não estava retornando a lista.html...