在Flask中,蓝图(Blueprint)是一种将应用程序组织成模块化、可重用的组件的方式。蓝图提供了一种将应用程序分解成更小更易于管理的部分的方法,使代码更易于维护和重用。
蓝图可以通过定义路由、视图函数、静态文件等来实现功能,并且可以被注册到应用程序上下文中。这样,一个大型应用程序可以通过将不同的蓝图组合起来轻松地扩展其功能。
在Flask中,创建蓝图需要指定蓝图的名称、蓝图所在的包或模块以及静态文件和模板文件的路径等信息。
蓝图和整个最外层的app对象相连接 ,每一个项目创建一个蓝图,实现对项目的模块化设计。
其中,每一个项目使用一个python包来管理相应的py文件,在整个app.py文件中,只会存放app的运行代码以及和apps文件连接的代码。apps则用来存放每一个模块的代码包,如user,goods.......以下是只列出了users这个代码包的实例。
app.py如下:
from apps import create_app
app=create_app()
if __name__ == '__main__':
app.run()
create_app()是在apps中定义的一个函数,这里实现了app对象和蓝图的连接。下面的代码是放在apps.__init__中,系统在执行apps代码包的时候默认首先运行这个文件
from flask import Flask
import settings
from apps.user.view import user_bp
def create_app():
app=Flask(__name__,template_folder='../templates') #设置template_folder参数是因为app对象里边默认使用的模板文件是和当前py文件处在同一级的模板文件夹
app.config.from_object(settings)
app.register_blueprint(user_bp)
return app
在create_app()中,app.register_blueprint(user_bp)这个函数则实现了整个大蓝图和项目user的连接,在user的python包中,初始结构如下:
view.py文件中存放的是user相关的视图函数,后期在对user进行维护的时候,只需要修改view里边的视图函数即可。view函数的初始内部细节如下:
from flask import Blueprint
user_bp=Blueprint('user',__name__)
#Blueprint() 返回一个app对象,该对象对应的蓝图的名称是user
@user_bp.route('/')
def user_center():
return '用户中心'
@user_bp.route('/register')
def register():
return '用户注册'
以上便是蓝图构造的过程,自己的学习笔记可能在逻辑表达方面可能欠缺很大,不过以后会慢慢改进!点个关注,一起进步!