您现在的位置是:网站首页 > 博客日记 >

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.pyproduct_views.py
  • 模型层:user_model.pyorder_model.py
  • 工具类:date_utils.pyfile_utils.py

3、特殊文件

  • __init__.py: 标识Python包,可空或写初始化代码
  • wsgi.py / asgi.py: Web服务器入口(生产部署)

 

 

YXN

2025-01-17