初识flask的blueprint模块,出现404错误

初识flask的blueprint模块,出现404错误,第1张

今天刚开始看blueprint模块,然后做了一个十分简单的示例——分为两个模块,用户user和管理员admin两个块,分别为这两个块定义了一个user_blue和admin_blue蓝图实例,然后在主文件app.py中注册两个蓝图实例。


问题就来了:除了主文件app.py中定义的路由可用,user_blue和admin_blue定义的路由都不可用,结果就是访问这里面的路由出现404 not found错误。


如下图所示

图片中的红色标注部分user是user_blue定义的url_prefix(我的理解是路由前缀),蓝色标注部分是user_blue装饰下的路由login。


这里就举这一个例子,其他的所有页面都是这样子的问题,都是404。



然后在网上查了好久,解决方法有很多,但是对我都不适用。


晚上不经意间看到一篇博客

https://blog.csdn.net/spider_py/article/details/100532617

虽然文章不是讲的这个问题,但是文中提到了一个点就是views.py文件的导入。


我的views.py是在myadmin和user文件夹的init.py文件中导入的,而且是在init.py文件的开头,这样子虽然没报错,但是无法访问路径。


具体原因,我现在暂未知晓,请大佬们留言说明一下,感谢。



这是我示例项目的目录

解决方法一:将views.py文件导入到主文件app.py中,导入之后views字体是未使用的“灰色”,这是正确的。


但是必须导入,相应的蓝图实例才能知道具体的路由是怎样的。


app.py文件具体实现如下:

from flask import Flask
from myadmin import admin_blue, views
from user import user_blue, views

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'


app.register_blueprint(admin_blue)
app.register_blueprint(user_blue)

if __name__ == '__main__':
    app.run(debug=True)

解决方法二:将views.py导入到init.py文件中,但不是开始部分,而是在最后结束部分👇
文件user/init.py具体实现如下

from flask import Blueprint

admin_blue = Blueprint('user', __name__, url_prefix='/user')
from . import views

修改之后,就可以正常访问了👇。



今天的blueprint就先到这,再次恳请知道以上问题的大牛们给出指导,万分感谢。


当然也欢迎大家留言交流。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/570383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存