Files
template/README.md

259 lines
6.4 KiB
Markdown
Raw Normal View History

2025-12-21 00:20:27 +08:00
# Python项目模板
这是一个通用的Python项目模板基于Flask框架的最佳实践可以直接复制使用快速启动新项目。
## 项目特性
-**标准化项目结构** - 清晰的目录组织,易于维护
-**多环境配置管理** - 支持development/production/testing/local环境
-**依赖分类管理** - 基础/开发/生产/测试依赖分离
-**应用工厂模式** - 灵活的Flask应用创建方式
-**数据库迁移支持** - 使用Flask-Migrate管理数据库版本
-**环境变量管理** - 使用.env文件管理敏感配置
-**完整的文档结构** - 包含API、开发、部署文档模板
-**测试框架集成** - pytest测试配置
-**日志系统** - 自动配置日志记录
-**跨域支持** - CORS配置
## 快速开始
### 1. 复制模板
```bash
# 复制整个template目录到你的新项目位置
cp -r template my_new_project
cd my_new_project
```
### 2. 初始化项目
```bash
# 创建虚拟环境
python -m venv .venv
# 激活虚拟环境
# Windows
.venv\Scripts\activate
# Linux/Mac
source .venv/bin/activate
# 安装依赖
pip install -r requirements/base.txt
pip install -r requirements/development.txt
```
### 3. 配置环境变量
```bash
# 复制环境变量模板
cp .env.example .env
# 编辑.env文件填入你的配置
# 至少需要设置:
# - SECRET_KEY
# - DATABASE_URL
# - FLASK_ENV
```
### 4. 初始化数据库
```bash
# 初始化数据库迁移
flask db init
# 创建初始迁移
flask db migrate -m "Initial migration"
# 应用迁移
flask db upgrade
```
### 5. 运行项目
```bash
# 开发模式
python run_dev.py
# 或使用Flask命令
flask run
```
## 项目结构
```
template/
├── src/ # 源代码目录
│ └── your_app/ # 主应用包(需要重命名)
│ ├── __init__.py # 应用工厂
│ ├── app.py # 应用配置
│ ├── models/ # 数据模型
│ ├── routes/ # 路由定义
│ ├── services/ # 业务逻辑
│ ├── utils/ # 工具函数
│ ├── forms/ # 表单定义(可选)
│ ├── static/ # 静态资源
│ └── templates/ # 模板文件
├── config/ # 配置管理
│ ├── __init__.py # 配置选择器
│ ├── base.py # 基础配置
│ ├── development.py # 开发环境
│ ├── production.py # 生产环境
│ ├── testing.py # 测试环境
│ └── local.py # 本地环境
├── requirements/ # 依赖管理
│ ├── base.txt # 基础依赖
│ ├── development.txt # 开发依赖
│ ├── production.txt # 生产依赖
│ └── test.txt # 测试依赖
├── tests/ # 测试目录
│ ├── __init__.py
│ ├── conftest.py # pytest配置
│ └── test_*.py # 测试文件
├── migrations/ # 数据库迁移(自动生成)
├── logs/ # 日志目录(自动生成)
├── uploads/ # 上传文件目录(自动生成)
├── docs/ # 文档目录
│ ├── api/ # API文档
│ ├── development/ # 开发文档
│ └── deployment/ # 部署文档
├── scripts/ # 工具脚本
│ └── init_project.py # 项目初始化脚本
├── .env.example # 环境变量模板
├── .gitignore # Git忽略文件
├── run_dev.py # 开发服务器启动脚本
├── run_production.py # 生产环境启动脚本
└── README.md # 项目说明(本文件)
```
## 使用说明
### 重命名项目
1.`src/your_app/` 目录重命名为你的应用名称
2. 更新 `src/your_app/__init__.py` 中的导入路径
3. 更新 `run_dev.py``run_production.py` 中的导入路径
4. 更新所有文档中的项目名称
### 配置环境
通过设置 `FLASK_ENV` 环境变量来选择配置:
```bash
# 开发环境(默认)
export FLASK_ENV=development
# 生产环境
export FLASK_ENV=production
# 测试环境
export FLASK_ENV=testing
# 本地环境
export FLASK_ENV=local
```
### 添加新功能
1. **添加路由**:在 `src/your_app/routes/` 创建新的路由文件
2. **添加模型**:在 `src/your_app/models/` 创建新的模型文件
3. **添加服务**:在 `src/your_app/services/` 创建业务逻辑
4. **添加工具**:在 `src/your_app/utils/` 创建工具函数
### 数据库迁移
```bash
# 创建迁移
flask db migrate -m "描述信息"
# 应用迁移
flask db upgrade
# 回滚迁移
flask db downgrade
```
### 运行测试
```bash
# 安装测试依赖
pip install -r requirements/test.txt
# 运行所有测试
pytest
# 运行特定测试文件
pytest tests/test_example.py
# 生成覆盖率报告
pytest --cov=src tests/
```
## 依赖管理
依赖按用途分类管理:
- **base.txt**: 项目运行必需的基础依赖
- **development.txt**: 开发工具(调试器、代码检查等)
- **production.txt**: 生产环境依赖WSGI服务器等
- **test.txt**: 测试框架和工具
安装方式:
```bash
# 开发环境
pip install -r requirements/base.txt
pip install -r requirements/development.txt
# 生产环境
pip install -r requirements/base.txt
pip install -r requirements/production.txt
```
## 环境变量说明
所有配置通过环境变量管理,详见 `.env.example` 文件。
**必需的环境变量:**
- `SECRET_KEY`: Flask密钥
- `DATABASE_URL`: 数据库连接URL
- `FLASK_ENV`: 运行环境
## 部署
### 开发环境
```bash
python run_dev.py
```
### 生产环境
```bash
# 使用Gunicorn
gunicorn -c gunicorn.conf.py "src.your_app:create_app()"
# 或使用uWSGI
uwsgi --ini uwsgi.ini
```
## 贡献指南
1. Fork本项目
2. 创建功能分支
3. 提交更改
4. 推送到分支
5. 创建Pull Request
## 许可证
MIT License
## 更新日志
### v1.0.0 (2025-01-XX)
- 初始版本
- 基础项目结构
- 多环境配置支持
- 依赖分类管理