1
resposta

erro ao dar run

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


# Classes de exemplo
class Jogo:
    def __init__(self, nome, categoria, console):
        self.nome = nome
        self.categoria = categoria
        self.console = console


jogo1 = Jogo('Tetris', 'Puzzle', 'Atari')
jogo2 = Jogo('God of War', 'Rack n Slash', 'PS2')
jogo3 = Jogo('Mortal Kombat', 'Luta', 'PS2')
lista = [jogo1, jogo2, jogo3]


class Usuario:
    def __init__(self, nome, nickname, senha):
        self.nome = nome
        self.nickname = nickname
        self.senha = senha


usuario1 = Usuario("Luiz Zaim", "LZ", "alohomora")
usuario2 = Usuario("Enzo Scuderi", "Dutera20", "rapdosmemes")
usuario3 = Usuario("Tiago Rocha", "Tiagx", "ricardooficial")

usuarios = {
    usuario1.nickname: usuario1,
    usuario2.nickname: usuario2,
    usuario3.nickname: usuario3
}

# Configuração do app Flask
app = Flask(__name__)
app.secret_key = 'alura'

# Configuração do banco de dados
app.config['SQLALCHEMY_DATABASE_URI'] = \
 '{SGBD}://{usuario}:{senha}@{servidor}/{database}'.format(
    SGBD='mysql+mysqlconnector',
    usuario='root',
    senha='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>' % self.name

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():
    return render_template('lista.html', titulo='Jogos', jogos=lista)


@app.route('/novo')
def novo():
    if 'usuario_logado' not in session or session['usuario_logado'] is None:
        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'] == usuarios[request.form['usuario']].senha:
            flash(usuario.nickname + ' logado com sucesso!')
            session['usuario_logado'] = usuario.nickname
            proxima_pagina = request.form.get('proxima', url_for('index'))
            return redirect(proxima_pagina)

    flash('Usuário ou senha incorretos! Tente novamente!')
    return redirect(url_for('login'))


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


if __name__ == '__main__':
    # Certifique-se de criar o banco de dados antes de executar
    with app.app_context():
        db.create_all()
    app.run(debug=True)

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeerro ao dar run, o banco de dados está funcionando, mas quando vou dar run na jogoteca.py não esta funcionando, precisa de ajuda pfv

1 resposta

Olá, Luiz! Tudo bem?

O erro "ImportError: cannot import name 'url_quote' from 'werkzeug.urls'" geralmente ocorre quando uma versão mais recente do Werkzeug é usada com uma versão mais antiga do Flask.

Aqui estão algumas etapas para tentar resolver o problema:

  1. Atualizar o Flask: Tente atualizar o Flask para a versão mais recente. No terminal, execute:

    pip install --upgrade Flask
    
  2. Verificar o ambiente virtual: Certifique-se de que está usando um ambiente virtual (virtualenv) e que ele está ativado. Isso ajuda a isolar as dependências do projeto.

  3. Reinstalar as dependências: Se nada funcionar, você pode tentar remover o ambiente virtual e criar um novo, instalando novamente as dependências.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.