这是我在Visual Studio 2017上运行的测试代码,文件名为test:
from flask import Flask, request #import main Flask class and request object
from test import app
app = Flask(__name__) #create the Flask app
@app.route('/query-example')
def query_example():
return 'Todo...'
@app.route('/form-example')
def formexample():
return 'Todo...'
@app.route('/json-example')
def jsonexample():
return 'Todo...'
if __name__ == '__main__':
app.run(debug=True, port=5000) #run app in debug mode on port 5000
但是当我在Visual Studio 2017中运行它并在Chrome浏览器中输入此路由“ http://127.0.0.1:5000/json-example”时,总是会收到此错误消息。
“找不到404” 在服务器上找不到请求的URL。如果输入URL 手动,请检查您的拼写,然后重试。
我是一名学习者,尝试过这篇文章: https://scotch.io/bar-talk/processing-incoming-request-data-in-flask
以前我曾经用相同的代码获取返回消息,但是在将烧瓶更新为0.12.4之后,它不起作用了,我认为情况有所改变。我无法调试确切的问题。
-更新-
好吧,将Flask版本更新为1.0.2,但仍然无法从URL http://127.0.0.1:5000/json-example访问Web服务器。请查看下面的屏幕截图。
找不到404错误:
未找到
在服务器上找不到请求的URL。如果输入URL 手动,请检查您的拼写,然后重试。
答案 0 :(得分:1)
The docs建议您验证.env和.flaskenv文件是否没有干扰。 (可能不是。)
您确实需要避免一个符号与另一个符号之间的阴影。
请不要命名您的模块test
,因为python附带了带有该名称的系统库。您可以改用test1
,以避免不必要的混乱。
由于您的模块具有一个app_
文件,因此请将全局变量重命名为app.py
。
请添加一个/
斜线,即使并非绝对必要。
您会发现它有助于调试。
@app_.route('/')
def root():
return '<h1>top level</h1>'
请运行current version的烧瓶。 用当前代码而不是downrev代码报告问题要好得多。
而不是让python直接调用app_.run(...)
,请运行flask
。使用export
或env
,只要您喜欢:
$ export FLASK_APP=test1 FLASK_ENV=development
$ env FLASK_APP=test1 FLASK_ENV=development flask run --port=5000
这将启用调试模式,这应该有助于您深入了解路由问题。
另外,编辑后重新加载非常方便。
关键是您运行python
而不是运行flask
,而运行python
。
答案 1 :(得分:0)
在进行故障排除时,我注意到上面的相同代码在具有相同python和flask版本的raspberry Pi零模块中有效。但是它在Windows 7的Visual Studio中仍然无法正常工作。我的Visual Studio可能存在一些问题。我将其卸载,然后重新安装。但是是的,我的问题现在已经解决。谢谢大家的回答。
答案 2 :(得分:0)
在Ubuntu 19.10上运行VS Code时,我遇到了同样的问题。问题是从路由视图函数返回的字符串。
@app.route('/')
@app.route('/index')
def index():
return 'Hello World!'
给出错误404。但是当我更改为:
@app.route('/')
@app.route('/index')
def index():
return '<h1>Hello World!</h1>'
一切都很好。