蓝图的概念:
对应用程序的结构进行分配
蓝图的作用:
将不同的功能 模块化;
构建大型的应用;
优化项目结构;
增强可读性,易于维护;
蓝图构建项目目录:
定义蓝图 每个app应用下的init 文件中
home/__init__.py
from flask import Blueprint
home = Blueprint('home',__name__,template_folder='',static_folder='')
import app.home.views
admin/__init__.py
from flask import Blueprint
admin = Blueprint('admin',__name__)
import app.admin.views
home/views.py
from . import home
@home.route('/')
def index():
return "<h2>这是home</h2>"
admin/views.py
from . import home
@admin.route('/')
def index():
return "<h2>这是admin</h2>"
注册蓝图
app/ __init__.py
from flask import Flask
app = Flask(__name__)
app.debug = True # 开启debug模式提示报错信息
from app.home import home as home_blueprint
from app.admin import admin as admin_blueprint
app.register_blueprint(home_blueprint)
app.register_blueprint(admin_blueprint,url_prefix='/admin') # 指定访问前缀,类似于django的 include
调用蓝图
manage.py :
from app import app
if __name__ == '__main__':
app.run()
目录结构
flask_project
│ create_db.py
│ manage.py
│
└─app
│ models.py
│ __init__.py
│
├─admin
│ forms.py
│ views.py
│ __init__.py
│
├─home
│ forms.py
│ views.py
│ __init__.py
│
├─static
└─templates
│ 404.html
│
├─admin
└─home
请求扩展 -- before_request 等 可以单独对 蓝图生效,也可以对整个app生效