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