Skip to content

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 钩子与错误处理器,仅作用于其命名空间。

本站内容仅供学习和研究使用。