1 创建Project
1个Project可以对应多个app
django-admin startproject myproject
2 创建App
python manage.py startapp app01
INSTALLED_APPS = [# ...'app01','app02',# ...
]
如果要让这个应用在项目中起作用,需要在项目的 settings.py
文件的 INSTALLED_APPS
配置中添加应用的名称。
3 启动项目
启动对象是一个项目,包含已经陪知道settings.py中的app
3.1 先初始化数据库
python manage.py makemigrations
python manage.py migrate
3.2 启动服务
python manage.py runserver 127.0.0.1:8000
4 自定义Django命令
4.1 自定义
需要在app的目录下建立management目录,command目录下文件名对应调用comman
app01/__init__.pymodels.pyviews.pymanagementcommandsmy_command.pytests.pyadmin.py
4.2 命令接受参数
from django.core.management.base import BaseCommand
from django.core.mail import send_mailclass Command(BaseCommand):help = 'Sends an email to the specified recipient'def add_arguments(self, parser):parser.add_argument('action', type=str, help='Action for Job')parser.add_argument('id', type=int, help='Job ID')def handle(self, *args, **kwargs):action = kwargs['action']message = kwargs['message']id = kwargs['id']if action =='start':start_job(id)self.stdout.write(self.style.SUCCESS('Job star successfully'))
4.3 使用命令带参数
python manage.py my_command --action='start --id=1
5 Django完整项目目录
project_demo/project_demo/__init__.pysettings.pyurls.pyasgi.pywsgi.pymanage.pyapp01/__init__.pymodels.pyviews.pymanagementcommandsmy_command.pytests.pyadmin.pyapp02/__init__.pymodels.pyviews.pytests.pyadmin.pystatic/templates/media/
project_demo/
: 顶层目录,与项目同名。
project_demo/__init__.py
: 一个空文件,告诉Python该目录应该被视为一个Python包。
project_demo/settings.py
: 包含项目的所有配置设置。
project_demo/urls.py
: 存储项目的URL路由配置。
project_demo/asgi.py
: 用于部署项目的ASGI兼容服务器入口点。
project_demo/wsgi.py
: 用于部署项目的WSGI兼容服务器入口点。
manage.py
: 一个命令行工具,让你通过各种方式管理Django项目。
app01/
: Django应用目录,应用的名称可以自定义。
app01/__init__.py
: 一个空文件,告诉Python该目录应该被视为一个Python包。
app01/models.py
: 定义应用的数据库模型。
app01/views.py
: 包含处理网页请求和响应的逻辑。
app01/tests.py
: 包含应用的测试代码。
app01/admin.py
: 定义了Django admin界面的模型配置。
static/
: 存储应用的静态文件(如CSS、JavaScript、图片等)。
templates/
: 存储应用的模板文件(Django HTML文件)。
media/
: 存储应用上传的媒体文件(如用户上传的图片和视频)。
这只是一个基本的项目结构,根据项目的复杂性和需求,可能还需要添加其他目录和文件。