一个用于快速创建和管理Django项目结构的命令行工具。它可以帮助您:
- 创建遵循最佳实践的Django项目结构
- 轻松添加新的Django应用
- 自动处理配置文件和URL路由
- 提供完整的备份和恢复机制
- 📁 创建组织良好的项目目录结构
- 🔧 智能配置管理(settings分环境)
- 🚀 快速添加新应用
- 📋 自动更新配置文件
- 💾 配置文件自动备份
- 📝 集成日志系统(自动配置各应用日志)
- ⚡ 开发环境自动配置
- 📚 完整的文档生成
- 🔄 集成REST Framework和Swagger
- Python 3.10+
- Django 5.0+
- 下载脚本文件:
curl -O https://raw.githubusercontent.com/your-username/django-project-init/main/django_project_init.py- 添加执行权限(Linux/Mac):
chmod +x django_project_init.pyadmin(建议使用management或administration代替)auth(建议使用authentication或accounts代替)contenttypessessionsmessagesstaticfiles(建议使用assets或resources代替)
如果尝试使用这些名称,脚本会提供错误提示并建议替代名称。
为确保应用名称符合Django最佳实践:
- 使用小写字母
- 使用下划线分隔单词
- 避免使用中划线或驼峰命名
- 名称应该清晰描述应用功能
例如:
- ✅
customer_service - ✅
user_management - ❌
CustomerService - ❌
customer-service
- 基本用法(使用默认设置):
python django_project_init.py- 指定项目名称:
python django_project_init.py -p myproject- 创建项目并指定应用(注意避免使用受限名称):
python django_project_init.py -p myproject -a accounts dashboard- 手动配置模式:
python django_project_init.py --mode add -p myproject -a customer_service- 自动配置模式:
python django_project_init.py --mode add -p myproject -a accounts --auto-update- 使用默认文件名:
python django_project_init.py --guide- 指定输出文件:
python django_project_init.py --guide --guide-output custom_guide.md如果需要还原之前的配置:
python django_project_init.py -p myproject --restoreproject_name/
├── manage.py # Django管理脚本
├── requirements/ # 依赖管理
│ ├── base.txt # 基础依赖
│ ├── local.txt # 开发环境依赖
│ └── production.txt # 生产环境依赖
├── config/ # 项目配置
│ ├── settings/ # 分环境配置
│ │ ├── base.py # 基础配置
│ │ ├── local.py # 开发环境配置
│ │ ├── logging_config.py # 日志配置
│ │ └── production.py # 生产环境配置
│ ├── urls.py # URL配置
│ ├── asgi.py # ASGI服务器配置
│ └── wsgi.py # WSGI服务器配置
├── apps/ # 应用目录
│ └── [应用名]/ # 各个应用目录
├── templates/ # 项目级模板
│ └── shared/ # 共享模板
├── static/ # 静态文件
│ ├── css/ # 样式文件
│ ├── js/ # JavaScript文件
│ └── images/ # 图片资源
├── media/ # 上传文件
├── logs/ # 日志文件目录
│ ├── debug_YYYYMMDD.log # 调试日志
│ ├── info_YYYYMMDD.log # 信息日志
│ └── error_YYYYMMDD.log # 错误日志
├── docs/ # 文档
│ ├── api.md # API接口文档
│ ├── deployment.md # 部署文档
│ ├── api_design_guide.md # API设计指南(精简版)
│ └── django_rest_api_lightweight_specification_and_implementation_guide.md # API设计规范与实现指南
├── common/ # 工具函数
├── .env # 环境变量
└── README.md # 项目说明
app_name/
├── migrations/ # 数据库迁移
├── core/ # 核心业务逻辑目录
│ ├── __init__.py
│ ├── services/ # 核心服务实现
│ ├── models/ # 核心数据模型(非ORM)
│ ├── utils/ # 核心工具函数
│ └── exceptions/ # 核心异常定义
├── bootstrap.py # 应用启动器
├── models/ # [更新] Django模型目录
│ ├── __init__.py # 导出所有模型
│ └── base.py # 基础模型定义
├── serializers/ # [新增] 序列化器目录
│ ├── __init__.py # 导出所有序列化器
│ └── base.py # 基础序列化器定义
├── views/ # [更新] 视图目录
│ ├── __init__.py # 导出所有视图
│ └── base.py # 基础视图定义
├── forms/ # [更新] 表单目录
│ ├── __init__.py # 导出所有表单
│ └── base.py # 基础表单定义
├── templates/ # 应用模板
│ └── app_name/ # 应用特定模板
│ └── components/ # 组件模板
├── static/ # 应用静态文件
│ └── app_name/ # 应用特定静态文件
│ ├── css/ # 样式文件
│ ├── js/ # JavaScript文件
│ └── images/ # 图片资源
├── api/ # REST API
│ ├── views.py # API视图
│ └── urls.py # API路由配置
├── services/ # 业务服务层(集成层)
│ └── app_facade.py # Django集成服务
├── helpers/ # 辅助函数
│ └── formatters.py
├── tests/ # 测试文件
│ ├── test_models.py
│ ├── test_views.py
│ └── test_services/
├── management/ # 管理命令
│ └── commands/
│ └── process_data.py
├── urls.py # URL配置
├── apps.py # 应用配置
├── admin.py # 管理接口
├── constants.py # 常量定义
├── exceptions.py # Django相关异常
└── utils.py # Django相关工具函数
- 应用路径
- 所有应用都位于
apps目录下 - 导入时使用完整路径:
from apps.{app_name} import ... - 应用配置中使用完整路径:
name = 'apps.{app_name}'
- 模型配置
- 所有模型必须显式声明
app_label - Meta 类中必须包含必要的配置项
- 建议添加适当的索引定义
- URL配置
- 使用完整的应用路径
- 确保正确导入 include
- 路由名称要与应用名匹配
- 1.0.0 (2024-01-01)
- 初始发布
- 支持基本项目初始化
- 添加应用功能
- 配置备份和恢复
- 支持自定义模板
- Docker集成
- CI/CD配置生成
- 国际化支持