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

Erro durante compilação utilizando o methods POST

Olá, boa tarde.

Estou tento problema durante a compilação do meu código, inclusive foi no após a alteração do método GET para POST, abaixo segue o código:

from crypt import methods
from flask import Flask, render_template, request

app = Flask(__name__)

class Jogo:
    def __init__(self, nome, categoria, console):
        self.nome = nome
        self.categoria = categoria
        self.console = console

jogo1 = Jogo('Super Mario', 'Ação', 'SNES')
jogo2 = Jogo('Pokémon Gold', 'RPG', 'GBA')
jogo3 = Jogo('Mortal Kombat', 'Luta', 'SNES')
lista = [jogo1, jogo2, jogo3]

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

@app.route('/novo')
def 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 render_template(
        'lista.html',
        titulo = 'Jogos',
        jogos = lista
    )

app.run()

Erro:

Traceback (most recent call last):
  File "D:\Development\alura\flask1\jogoteca\venv\jogoteca.py", line 1, in <module>
    from crypt import methods
  File "C:\Users\ramon.nascimento\AppData\Local\Programs\Python\Python37\lib\crypt.py", line 3, in <module>
    import _crypt
ModuleNotFoundError: No module named '_crypt'

Process finished with exit code 1

Alguém sabe o que estou fazendo de errado?

1 resposta
solução!

Achei o problema!

O modulo crypt é exclusivo para sistemas UNIX, ou seja, distribuições Linux.

A IDE do PyCharm deve ter incluso de forma automática o módulo na linha 1 do código from crypt import methods.

Basta remover essa linha que funciona perfeitamente no Windows.