来源:https://flask.palletsprojects.com/en/3.0.x/blueprints/
基础用法
from flask import Flask
from yourapplication.simple_page import simple_page
app = Flask(__name__)
app.register_blueprint(simple_page)
#app.register_blueprint(simple_page, url_prefix='/pages')
app.url_map
Map([
' (HEAD, OPTIONS, GET) -> static>, ' (HEAD, OPTIONS, GET) -> simple_page.show>, simple_page.show>])
嵌套
from flask import Blueprint
parent = Blueprint('parent', __name__, url_prefix='/parent')
child = Blueprint('child', __name__, url_prefix='/child')
parent.register_blueprint(child)
app.register_blueprint(parent)
templates 位置
参考:https://stackoverflow.com/questions/17906513/templates-not-found-in-flask-blueprint
如果希望 blueprint 搞一个独立的模板目录,那么需要指定 templates 的位置
from flask import Blueprint, render_template
admin = Blueprint('admin', __name__, template_folder='templates')
@admin.route('/')
def admin_index():
return render_template('admin/index.html.jinja2')
在当前 blueprint 的目录中创建文件 templates/admin/index.html.jinja2