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

Estou tendo problema ao criar a lista atualizada

Aparece assim no terminal

127.0.0.1 - - [15/Sep/2023 09:50:17] "GET / HTTP/1.1" 404 -

127.0.0.1 - - [15/Sep/2023 09:50:20] "GET /novo HTTP/1.1" 200 -

[2023-09-15 09:50:25,100] ERROR in app: Exception on /criar [POST]

Traceback (most recent call last):

File "/Users/tadeu/PycharmProjects/jogoteca/venv/lib/python3.11/site-packages/flask/app.py", line 2073, in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/Users/grapho/PycharmProjects/jogoteca/venv/lib/python3.11/site-packages/flask/app.py", line 1518, in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/Users/tadeu/PycharmProjects/jogoteca/venv/lib/python3.11/site-packages/flask/app.py", line 1516, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^

File "/Users/tadeu/PycharmProjects/jogoteca/venv/lib/python3.11/site-packages/flask/app.py", line 1502, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/Users/tadeu/PycharmProjects/jogoteca/jogoteca.py", line 26, in criar nome = request.form['nome'] ^^^^^^^

NameError: name 'request' is not defined 127.0.0.1 - - [15/Sep/2023 09:50:25] "POST /criar HTTP/1.1" 500 -

1 resposta
solução!

Olá, Tadeu! Como vai?

Pelo que pude perceber, o erro que você está enfrentando é o NameError: name 'request' is not defined. Isso geralmente acontece quando o módulo ou a função que você está tentando usar não foi importado.

No caso do Flask, a função request é usada para lidar com as solicitações HTTP. No entanto, para que você possa usá-la, você precisa importá-la do módulo flask.

No início do seu arquivo jogoteca.py, você deve ter algo como isto:

from flask import Flask, render_template

Para corrigir o erro, você precisa adicionar request à lista de importações. Então, ficaria assim:

from flask import Flask, render_template, request

Agora, a função request deve estar disponível para você usar em seu código.

Aqui está um exemplo de como seu código pode ficar:

from flask import Flask, render_template, request

app = Flask(__name__)

@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(debug = True)

Espero ter ajudado e bons estudos!