flask___蓝图的认识及使用
# blueprint 翻译过来的---》把项目分到多个py文件---》以后常用
-划分项目目录
通过蓝图创建一个博客首页的基本视图,代码如下:
1 2 3 4 5 6 7 | from flask import Blueprint bp = Blueprint( 'blog' , __name__, url_prefix= '/blog' ) @bp.route( 'index/' ) def index(): return 'Hello Word' |
1、首先引入了蓝图对象,这个Blueprint与Flask类是
from flask import Blueprint
2、实例化一个蓝图对象,需要两个必须参数,第一个是应用的名称,第二个__name__是该应用的位置,其他参数都是可选的,我们这里用关键字参数url_prefix='/blog'
指定了 该应用的一个url的命名空间,和django的urls中的app_name类似,这个值会出现在该应用url之前,比如我们现在这个url访问的话应该是:http://127.0.0.1:8000/blog/index/
bp = Blueprint('blog', __name__, url_prefix='/blog')
3、创建了blog应用的一个视图,用蓝图实例来绑定route,把该url定义在该应用当中
1 2 3 | @bp.route( 'index/' ) def index(): return render_template() |
注册蓝图
上边我们都说了,这个应用通过蓝图创建,如果不去主项目注册的话,他是不会被运行的,这就要我们去工厂函数中注册蓝图!
首先,把该views文件引入到blog的__init__.py中,以便后续调用!
1 2 | # app/blog/__init__.py from .import views |
最后,在项目目录的__init__.py中的工厂函数中通过app实例的提供的register_blueprint方法注册蓝图,代码如下:
1 2 3 4 5 6 7 8 9 10 | def create_app(test_config=None): app = Flask(__name__, instance_relative_config=True) # ... 省略部分代码 # 注册博客蓝图 from app.blog import views as blog app.register_blueprint(blog.bp) return app |
定义入口
在入口文件manage.py中引入一下代码,代码非常简单,不做过多解释
1 2 3 4 5 6 7 | from RealProject import create_app app = create_app() # 当运行这个文件的时候才执行run()方法 if __name__ == '__main__' : app.run(debug=True) |
运行项目
在终端运行该文件即可成功启动项目,默认我们设置了run方法的debug模式为True,也就是开启了Flask的调试模式
py manage.py
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!