flask___蓝图的认识及使用

蓝图

# blueprint 翻译过来的---》把项目分到多个py文件---》以后常用
-划分项目目录

 蓝图小项目目录划分(只有一个app)

大型项目-目录划分(多个app)

——————————————————————————

蓝图就是把我们应用目录的模块注册到Flask类,充当一个中间人的角色

通过蓝图创建一个博客首页的基本视图,代码如下:

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访问的话应该是:

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

 

 

 

 

 

 

 

 

 

posted @   拆尼斯、帕丁顿  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示