使用蓝图Blueprint来分模块组织管理
1.简介
1.一个应用可以具有多个Blueprint
2.一个Blueprint并不是一个完整的应用,它不能独立于应用运行,而必须要注册到某一个应用中
3.可以将一个Blueprint注册到任何一个未使用的URL下比如 “/user”、“/goods”
app.register_blueprint(user_bp, url_prefix='/user')
中的url_prefix
来定义
4.Blueprint可以单独具有自己的模板、静态文件或者其它的通用操作方法
2.例子
./
├── app.py
└── user
├── __init__.py
└── views.py
app.py
from flask import Flask, Blueprint
from user import user_bp
app = Flask(__name__)
app.register_blueprint(user_bp)
user/__init__.py
from flask import Blueprint
user_bp = Blueprint('user', __name__)
# 导入该package的module否则无法获取
# 必须放在user_bp后面,因为views要用到user_bp
from . import views
user/views.py
from . import user_bp
@user_bp.route('/user')
def get_users():
return 'get users'
3.指定蓝图的url前缀
app.register_blueprint(user_bp, url_prefix='/user')
4.给蓝图指定静态文件夹和模板目录
admin = Blueprint("admin",__name__,static_folder='static_admin')
admin = Blueprint('admin',__name__,template_folder='templates')
注意不要加路径templates
虽然与默认的根目录下的’templates’相同,但是会在蓝图目录下寻找