Blueprints
蓝图(Blueprint)用于模块化组织路由、模板、静态文件和错误处理器,便于大型项目拆分与复用。
定义蓝图:
python
# app/blog/__init__.py
from flask import Blueprint
bp = Blueprint("blog", __name__, url_prefix="/blog")
@bp.get("/")
def list_posts():
return "Blog list"注册蓝图:
python
# app/__init__.py
from .blog import bp as blog_bp
app.register_blueprint(blog_bp)模板/静态隔离:
python
bp = Blueprint("blog", __name__, template_folder="templates", static_folder="static")命名端点:使用 blueprint_name.view_func 引用,如 url_for("blog.list_posts")。
蓝图与工厂:配合应用工厂延迟注册,避免循环导入。
错误处理与钩子:蓝图可注册 before_app_request/after_app_request 钩子与错误处理器,仅作用于其命名空间。