Gostaria de saber qual a solução pra contornar esse problema!
Gostaria de saber qual a solução pra contornar esse problema!
Olá Eduardo, como você está?
Peço desculpas pela demora em obter um retorno.
Pelo erro apresentado na imagem, no arquivo jogoteca.py possui uma importação da biblioteca crypt
, porém, essa biblioteca não é utilizada ao longo do curso, portanto, não é instalada, por isso o Python retorna que não conseguiu encontrar e trabalhar com esse módulo.
Sendo assim, verifique nas linhas iniciais do arquivo jogoteca.py se possui a seguinte linha:
from crypt import methods
Caso tenha, faça a exclusão desta linha, salve o arquivo e tente executar o código novamente, executando o comando abaixo no terminal.
python jogoteca.py
Segue abaixo o código completo do arquivo jogoteca.py para comparação:
from flask import Flask, render_template, request, redirect, session, flash, url_for
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', 'Hack 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("Bruno Divino", "BD", "alohomora")
usuario2 = Usuario("Camila Ferreira", "Mila", "paozinho")
usuario3 = Usuario("Guilherme Louro", "Cake", "python_eh_vida")
usuarios = { usuario1.nickname : usuario1,
usuario2.nickname : usuario2,
usuario3.nickname : usuario3 }
app = Flask(__name__)
app.secret_key = 'alura'
@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'] == 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'] == usuario.senha:
session['usuario_logado'] = usuario.nickname
flash(usuario.nickname + ' logado com sucesso!')
proxima_pagina = request.form['proxima']
return redirect(proxima_pagina)
else:
flash('Usuário não logado.')
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)
Espero ter ajudado e em caso de dúvidas estou à disposição.
Grande abraço!