我遇到了 flask url 路由问题;似乎路线没有按预期工作。
在
project/src/views.py
下,我有以下示例路由from flask import (Flask,request,jsonify,Blueprint) my_view = Blueprint('my_view', __name__) @my_view.route('/',methods=("GET",)) @my_view.route('/index',methods=("GET",)) def index(): .... <return response code here> @my_view.route("/key/<inp1>/<inp2>", methods=("POST","GET")) def getKey(inp1=None, inp2=None): .... <return response code here>
现在,在
project/src/app.py
下,我有以下代码from ../src.views import my_view my_app = Flask("myappname") my_app.register_blueprint(my_view) my_app.run(debug=True,host=APP_IP,port=APP_PORT)
现在,当我使用有效参数访问 URL http://ip:port/index
或 http://ip:port/key...
时,它返回 404,并显示消息“在服务器上找不到请求的 URL。如果您手动输入 URL,请检查拼写并重试。”我相信提到的路线不起作用。
最佳答案
发现的第一个问题是您的方法
参数。它需要一个列表/元组,但你传递的是一个字符串('GET')。更改为 methods=('GET', )
。请注意此处“GET”后的逗号。或者为避免将来可能造成的混淆,请使用 methods=['GET']
第二个问题是您在app.py
中导入my_view
的方式。由于 views.py
和 app.py
位于同一目录中,并且您要在该目录中启动 Flask 应用程序,因此您可以:
from views import my_view
但是,您应该考虑将您的应用构建为 Python Package
第三个问题是缺少from flask import Flask
。也许您在发布代码时忽略了这一点。
我使用上述修复程序测试了您的代码,它可以正常工作。
编辑:感谢@dirn 指出方法参数接受元组。
关于python - 使用蓝图的 Flask URL 路由不起作用,返回 404 http 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30770052/