Skip to content

App Structure

从简单脚本演进到可维护的项目结构,推荐使用“应用工厂 + 蓝图”的模式。

最小结构:

flask-demo/
  app.py

推荐结构(应用工厂):

flask-demo/
  app/
    __init__.py      # create_app 工厂
    views.py         # 路由/视图
    extensions.py    # 第三方扩展实例化
    models.py        # 数据模型(可选)
    templates/       # Jinja2 模板
    static/          # 静态文件
  instance/
    config.py        # 私有配置(不进版本库)
  .env               # 环境变量(可选)
  wsgi.py            # 生产入口(可选)

应用工厂示例:

python
# app/__init__.py
from flask import Flask

def create_app(config_object=None):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_mapping(SECRET_KEY="dev")
    if config_object:
        app.config.from_object(config_object)
    # 延迟导入并注册蓝图
    from .views import bp as main_bp
    app.register_blueprint(main_bp)
    return app

蓝图与视图:

python
# app/views.py
from flask import Blueprint

bp = Blueprint("main", __name__)

@bp.get("/")
def index():
    return "Hello from Blueprint"

开发运行:

bash
export FLASK_APP=app:create_app
flask run --debug

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