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

今天刚开始看blueprint模块,然后做了一个十分简单的示例——分为两个模块,用户user和管理员admin两个块,分别为这两个块定义了一个user_blue和admin_blue蓝图实例,然后在主文件app.py中注册两个蓝图实例。问题就来了:除了主文件app.py中定义的路由可用,user_blue和admin_blue定义的路由都不可用,结果就是访问这里面的路由出现404 not found错误。如下图所示
11
图片中的红色标注部分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就先到这,再次恳请知道以上问题的大牛们给出指导,万分感谢。当然也欢迎大家留言交流。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值