對於初學django新手,根據以下步驟可以快速進行Django環境搭建
虛擬環境創建
使用virtualenv創建並啟用虛擬機環境 ,關於virtualenv可參考https://www.yuque.com/binowen/tn8zvy/inscle
pip install virtualenv
virtualenv ./env
source env/bin/activate
創建project
1.使用pip install 安裝django
pip install django
2.使用django-admin startproject
生成項目
`根目錄的mysite/,僅僅是個目錄而已,Django不會拿它做什么,它的名字可以隨意修改`
注意: startproject不支持直接創建帶短橫線的項目名,e.g. hello-world
項目結構
- asgi.py
兼容ASGI Web服務器的入口。
- wsgi.py
兼容WSGI Web服務器的入口。
ASGI和WSGI,都是一種Python的Web服務網關接口協議,是在CGI通用網關接口,Common Gateway Interface)的標准上構建的。
- urls.py
網址入口,關聯到對應的views.py中的一個函數(或者generic類),訪問網址就對應一個函數。
- views.py
處理用戶發出的請求,從urls.py中對應過來, 通過渲染templates中的網頁可以將顯示內容,比如登陸后的用戶名,用戶請求的數據,輸出到網頁。
- models.py
與數據庫操作相關,存入或讀取數據時用到這個,當然用不到數據庫的時候 你可以不使用。
- forms.py
表單,用戶在瀏覽器上輸入數據提交,對數據的驗證工作以及輸入框的生成等工作,當然你也可以不使用。
- templates 文件夾
views.py 中的函數渲染templates中的Html模板,得到動態內容的網頁,當然可以用緩存來提高速度。
- admin.py
后台,可以用很少量的代碼就擁有一個強大的后台。
- settings.py
Django 的設置,配置文件,比如 DEBUG 的開關,靜態文件的位置等。
創建app
使用python manage.py startapp 創建****app。
app是Django項目的應用,一個project可以包含多個app。在使用django-admin startapp命令后就會創建這樣的目錄文件,如下:
- polls/
app的Python包,可以放在任意路徑。修改存放路徑,相關配置中的路徑也需要修改。
- admin.py
存放Django自帶后台管理的models。
- apps.py
app配置信息,例如:
from django.apps import AppConfig
class PollsConfig(AppConfig):
name = 'polls'
存放路徑不同,name的值也不同。
- migrations/
Django數據遷移生成的遷移記錄文件。
- models.py
存放app的models。
- tests.py
單元測試。
- views.py
視圖函數(類)。
- urls.py
app的路由配置,需要手動添加,可通過include()函數導入到mysite/urls.py中,例如:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('polls/', include('polls.urls')),
]
polls/urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index),
]
訪問xxx/polls/就會路由到views.index
創建Template
- 創建templates文件夾,並把所有網頁模板(.html)文件都放在此文件夾中。
- 創建static文件夾,並把所有靜態文件(圖像文件、CSS文件及.js等)都放在此文件夾中。
創建Model/View/Url
- 修改settings.py,把相關的文件夾加入,也把生成的app名稱加入INSTALLED_APPS序列中。
- 編輯models.py,創建數據庫表格。
- 編輯views.py,先import在models.py中創建的數據模型。
- 編輯admin.py,把models.py中定義的數據模型加入,並使用admin.site.register注冊新增的類,讓admin界面可以處理數據庫內容。
- 編輯urls.py,先import在views.py中定義的模塊
- 編輯urls.py,創建網站和views.py中定義的模塊的對應關系。
- 執行數據庫腳本初始化(如果有Model的話)
python manage.py makemigrations
python manage.py migrate
執行python manage.py runserver 0.0.0.0:8000
啟動項目
工程化項目參考
由於Django官方並沒有提供標准的項目結構
特點是①app放置在單獨目錄統一管理,②requirements和settings按環境做拆分
參考:
https://docs.djangoproject.com/en/3.1/intro/tutorial01/
https://django-edge.readthedocs.io/en/latest/Architecture/