python web基础项目结构示例
作者:YXN 阅读量:70 发布日期:2025-01-17
基础项目结构示例
myproject/ # 项目根目录(建议全小写)
├── README.md # 项目说明文档
├── requirements.txt # 依赖库列表
├── setup.py # 安装配置(可选)
├── .gitignore # Git忽略规则
├── .env # 环境变量配置
│
├── config/ # 配置文件目录
│ ├── settings.py # 主配置
│ ├── dev.py # 开发环境配置
│ └── prod.py # 生产环境配置
│
├── src/ # 或 myproject/(核心代码)
│ ├── __init__.py # 包标识
│ ├── app.py # 应用入口(Flask为例)
│ ├── models/ # 数据模型
│ ├── views/ # 视图/路由(或 controllers/)
│ ├── services/ # 业务逻辑层
│ ├── utils/ # 工具类/辅助函数
│ └── templates/ # HTML模板(Django默认在此)
│
├── static/ # 静态资源
│ ├── css/ # CSS文件
│ ├── js/ # JavaScript
│ ├── images/ # 图片
│ └── fonts/ # 字体文件
│
├── tests/ # 测试代码
│ ├── unit/ # 单元测试
│ └── integration/ # 集成测试
│
├── migrations/ # 数据库迁移脚本(如Alembic)
├── logs/ # 日志文件
├── docs/ # 项目文档
├── scripts/ # 工具脚本(部署/数据库等)
└── docker/ # Docker配置(可选)
├── Dockerfile
└── docker-compose.yml
核心文件类型说明
1、配置类
- .env: 存储敏感环境变量(数据库密码、API密钥等)
- config/*.py: 不同环境的配置参数(SECRET_KEY、数据库连接等)
- requirements.txt / Pipfile: 项目依赖清单
2、代码类
- models/*.py: 数据模型定义(ORM类,如SQLAlchemy/Django Model)
- views/*.py 或 controllers/*.py: 路由和视图处理逻辑
- services/*.py: 业务逻辑封装(与路由解耦)
- utils/*.py: 通用工具函数(加密、日期处理等)
3、静态资源
- static/*: 浏览器直接访问的资源(CSS/JS/图片)
- templates/*.html: HTML模板(Jinja2/Django模板语法)
4、测试与质量
- tests/: 使用pytest/unittest编写的测试用例
- .coveragerc: 测试覆盖率配置
- mypy.ini: 静态类型检查配置
5、运维相关
- Dockerfile: 容器化构建配置
- docker-compose.yml: 定义多容器服务
- scripts/deploy.sh: 自动化部署脚本
6、文档与元数据
- README.md: 项目简介、安装步骤、API文档链接
- docs/*.md: 详细技术文档(API说明、架构设计)
- LICENSE: 开源协议
⚠️ 命名规范建议
1、目录/文件名
- 全小写 + 下划线(如 error_handlers.py)
- 避免特殊字符和空格
- 保持简短且语义明确(user_service.py > us.py)
2、代码文件
- 视图层:auth_views.py、product_views.py
- 模型层:user_model.py、order_model.py
- 工具类:date_utils.py、file_utils.py
3、特殊文件
- __init__.py: 标识Python包,可空或写初始化代码
- wsgi.py / asgi.py: Web服务器入口(生产部署)
YXN
2025-01-17