Python 使用blueprint的Flask URL路由不工作,返回404 http代码
我正面临着一个关于flaskurl路由的问题;看来路线并没有如预期的那样工作Python 使用blueprint的Flask URL路由不工作,返回404 http代码,python,flask,Python,Flask,我正面临着一个关于flaskurl路由的问题;看来路线并没有如预期的那样工作 在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 in
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>
现在,当我访问URL
http://ip:port/index
或http://ip:port/key...
如果参数有效,则返回404,并显示消息“在服务器上找不到请求的URL。如果手动输入URL,请检查拼写并重试。”我相信上述路线不起作用。发现的第一个问题是您的方法
参数。它需要一个列表/元组,但您正在传递一个字符串('GET')。更改为methods=('GET',)
。注意“GET”后面的逗号。或者为了避免将来可能出现的混淆,请使用methods=['GET']
第二个问题是您在app.py
中导入my_视图的方式。由于views.py
和app.py
位于同一目录中,并且您正在该目录中启动flask应用程序,因此您可以执行以下操作:
from views import my_view
然而,你应该把你的应用程序结构化为一个整体
第三期是烧瓶导入烧瓶
中缺少的。也许你在发布代码时忽略了这一点
我用上面的修复程序测试了你的代码,它正常工作
编辑:感谢@dirn指出方法参数接受元组。元组可以。问题是('GET')
不是元组,而是字符串('GET',)
是一个元组。需要明确的是,当我在没有蓝图的情况下运行app.py,并将所有路由和业务逻辑保存在同一个代码文件app.py中时,它们都在工作,所以我相信装饰器、参数和业务代码不是问题所在,在测试之后,我只是将一些东西移到views.py,作为一个良好的项目结构并添加了蓝图,从那以后问题就开始了团队,有什么建议吗?同样,我们如何知道当这个端点被击中时发生了什么?无论如何,我们可以在代码中添加一些调试语句。
from views import my_view