# 配置 iTi-Flask 内置 `dev`、`test`、`prod` 三套配置。 默认环境是 `dev`。 ## 环境选择 ```bash FLASK_ENV=dev uv run python -m flask --app app.py run --debug ``` `create_app(config_name="test")` 可以直接指定环境。 业务项目通常传入自己的配置映射: ```python from iti.config import DevConfig as BaseDevConfig from iti.config import ProdConfig as BaseProdConfig from iti.config import TestConfig as BaseTestConfig class DevConfig(BaseDevConfig): SQLALCHEMY_DATABASE_URI = "sqlite:///runtime/app_dev.db" class TestConfig(BaseTestConfig): SQLALCHEMY_DATABASE_URI = "sqlite:///:memory:" class ProdConfig(BaseProdConfig): pass config = { "dev": DevConfig, "test": TestConfig, "prod": ProdConfig, "default": DevConfig, } ``` ## env 文件 框架会从当前工作目录加载第一个存在的 env 文件: 1. `.env.local` 2. `.env.` 3. `.env` 也可以用 `ITI_ENV_DIR` 指定查找目录: ```bash ITI_ENV_DIR=/path/to/app FLASK_ENV=prod uv run python -m flask --app app.py run ``` ## 常用配置项 | 配置项 | 说明 | | --- | --- | | `SECRET_KEY` | Flask 密钥 | | `JWT_SECRET_KEY` | JWT 密钥 | | `DATABASE_URL` | 数据库连接串 | | `REDIS_URL` | 生产限流存储地址 | | `FRONTEND_ENABLED` | 是否启用 SPA 承载 | | `FRONTEND_PATH` | SPA 构建目录 | | `SERVICES` | 服务客户端配置 | | `TASKS_ENABLED` | 是否启动任务调度线程 | ## 数据库 默认使用 SQLite。 开发环境默认数据库: ```text runtime/iti-flask_dev.db ``` 测试环境使用内存数据库: ```text sqlite:///:memory: ``` 生产环境优先读取 `DATABASE_URL`。 `postgres://` 会自动转换为 `postgresql://`。 ## 限流 默认启用 Flask-Limiter。 开发环境: ```python RATELIMIT_ENABLED = True RATELIMIT_STORAGE_URL = "memory://" RATELIMIT_DEFAULT = "1000 per hour" ``` 测试环境禁用限流。 生产环境默认从 `REDIS_URL` 读取存储地址: ```python RATELIMIT_DEFAULT = "100 per hour" ``` 路由级限流: ```python from iti.applications.extensions import limiter @bp.get("/reports") @limiter.limit("10 per minute") def list_reports(): return {"data": []} ``` ## 缓存 框架初始化两个缓存配置: - `CACHE_SIMPLE` - `CACHE_REDIS` 本地默认启用 `SimpleCache`。 Redis 缓存默认关闭。 ## 文件存储 本地文件默认写入: ```text runtime/uploads ``` 业务项目可以覆盖 `FILE_STORAGE["LOCAL"]["base_path"]`。