Estou enfrentando um erro aqui, mas antes de postar a dúvida decidi usar o arquivo com o projeto pronto do final da aula 4 e notei que lá ocorre o mesmo erro.
Como reproduzir o erro: 1. Criar projeto no pyCharm 2. Descompactar aula4.zip no diretório do projeto 3. Esperar o pyCharm atualizar o projeto 4. Executar jogoteca.py 5. Clicar no link apresentado no console para acessar a página inicial 6. Clicar no link Editar de qualquer jogo 7. Obter-se-á uma página de reporte de erro, cujo stack é apresentado no console também.
Segue o conteúdo do console para análise:
C:\Anaconda3\python.exe C:/Dev/Alura/Python3/Aula4/jogoteca.py
* Restarting with stat
* Debugger is active!
* Debugger PIN: 107-791-923
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [20/Jan/2018 10:18:11] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [20/Jan/2018 10:18:11] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [20/Jan/2018 10:18:13] "GET /editar/2 HTTP/1.1" 500 -
Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1997, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Anaconda3\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Anaconda3\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Dev\Alura\Python3\Aula4\jogoteca.py", line 54, in editar
return redirect(url_for('login', proxima=url_for('editar')))
File "C:\Anaconda3\lib\site-packages\flask\helpers.py", line 333, in url_for
return appctx.app.handle_url_build_error(error, endpoint, values)
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1805, in handle_url_build_error
reraise(exc_type, exc_value, tb)
File "C:\Anaconda3\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\Anaconda3\lib\site-packages\flask\helpers.py", line 323, in url_for
force_external=external)
File "C:\Anaconda3\lib\site-packages\werkzeug\routing.py", line 1768, in build
raise BuildError(endpoint, values, method, self)
werkzeug.routing.BuildError: Could not build url for endpoint 'editar'. Did you forget to specify values ['id']?
127.0.0.1 - - [20/Jan/2018 10:18:13] "GET /editar/2?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -
127.0.0.1 - - [20/Jan/2018 10:18:13] "GET /editar/2?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 -
127.0.0.1 - - [20/Jan/2018 10:18:13] "GET /editar/2?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -
127.0.0.1 - - [20/Jan/2018 10:18:14] "GET /editar/2?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -
127.0.0.1 - - [20/Jan/2018 10:18:14] "GET /editar/2?__debugger__=yes&cmd=resource&f=ubuntu.ttf HTTP/1.1" 200 -
127.0.0.1 - - [20/Jan/2018 10:18:14] "GET /editar/2?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -
* To enable the debugger you need to enter the security pin:
* Debugger pin code: 107-791-923
127.0.0.1 - - [20/Jan/2018 10:18:20] "GET /editar/2?__debugger__=yes&cmd=printpin&s=M2CIdWQMZiFzOOY5d5zW HTTP/1.1" 200 -
127.0.0.1 - - [20/Jan/2018 10:18:29] "GET /editar/2?__debugger__=yes&cmd=pinauth&pin=&s=M2CIdWQMZiFzOOY5d5zW HTTP/1.1" 200 -
Caso se acesse a opção Novo Jogo, é solicitada tela de login e após autenticação é possível acessar os links de edição normalmente.
Se comentar as linhas 53 e 54 de jogoteca.py também é possível acessar a tela de edição, porém, sem a autenticação.
Poderiam verificar o que acontece?
TIA,
WB::