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/
: 存儲應用上傳的媒體文件(如用戶上傳的圖片和視頻)。
這只是一個基本的項目結構,根據項目的復雜性和需求,可能還需要添加其他目錄和文件。