Cookiecutter-Simple-Django 项目使用教程
1. 项目的目录结构及介绍
cookiecutter-simple-django/
├── hooks/
│ ├── pre_gen_project.py
│ └── post_gen_project.py
├── {{cookiecutter.repo_name}}/
│ ├── {{cookiecutter.repo_name}}/
│ │ ├── __init__.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ ├── manage.py
│ ├── requirements.txt
│ └── static/
│ └── css/
│ └── style.css
├── .gitignore
├── CONTRIBUTORS.txt
├── LICENSE.rst
├── README.rst
└── cookiecutter.json
目录结构介绍
hooks/
: 包含项目生成前后的钩子脚本,用于自定义项目生成过程。pre_gen_project.py
: 项目生成前的钩子脚本。post_gen_project.py
: 项目生成后的钩子脚本。
{{cookiecutter.repo_name}}/
: 生成的项目根目录。{{cookiecutter.repo_name}}/
: Django 项目的核心目录。__init__.py
: 使目录成为一个 Python 包。settings.py
: Django 项目的配置文件。urls.py
: 项目的 URL 配置文件。wsgi.py
: WSGI 配置文件,用于部署项目。
manage.py
: Django 项目的管理脚本。requirements.txt
: 项目依赖文件。static/
: 静态文件目录。css/
: CSS 文件目录。style.css
: 示例 CSS 文件。
.gitignore
: Git 忽略文件配置。CONTRIBUTORS.txt
: 贡献者列表。LICENSE.rst
: 项目许可证文件。README.rst
: 项目说明文件。cookiecutter.json
: Cookiecutter 模板配置文件。
2. 项目的启动文件介绍
manage.py
manage.py
是 Django 项目的管理脚本,用于执行各种管理命令。以下是一些常用的命令:
python manage.py runserver
: 启动开发服务器。python manage.py migrate
: 执行数据库迁移。python manage.py createsuperuser
: 创建超级用户。python manage.py collectstatic
: 收集静态文件。
wsgi.py
wsgi.py
是 WSGI 配置文件,用于部署 Django 项目。它定义了 WSGI 应用程序的入口点,通常在生产环境中使用。
3. 项目的配置文件介绍
settings.py
settings.py
是 Django 项目的主要配置文件,包含项目的各种配置选项。以下是一些重要的配置项:
DEBUG
: 是否开启调试模式,生产环境中应设置为False
。ALLOWED_HOSTS
: 允许访问的主机列表。INSTALLED_APPS
: 已安装的应用程序列表。MIDDLEWARE
: 中间件列表。DATABASES
: 数据库配置。STATIC_URL
: 静态文件的 URL 前缀。STATIC_ROOT
: 静态文件的收集目录。
urls.py
urls.py
是项目的 URL 配置文件,定义了 URL 与视图函数的映射关系。以下是一个简单的示例:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('about/', views.about, name='about'),
]
cookiecutter.json
cookiecutter.json
是 Cookiecutter 模板的配置文件,定义了生成项目时的变量和默认值。以下是一个示例:
{
"repo_name": "my_django_project",
"project_name": "My Django Project",
"author_name": "Your Name",
"email": "your.email@example.com",
"description": "A simple Django project",
"version": "0.1.0"
}
这些配置项在生成项目时会被替换为实际值。