概述
本專案依據官網示例整理而成,專案由以下兩部分組成 。
- 前臺展示,訪問者檢視民意調查並在其中投票
- 後臺管理,允許您對調查結果進行增刪改
建立專案
使用框架命令工具
django-admin
建立專案目錄骨架
pip install -U django
python -m django --version
django-admin startproject mysite
- 專案結構
外層
mysite
專案目錄,內層mysite
應用目錄,manage.py
管理Django
命令列互動
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
- 啟動web服務
進入專案目錄,以下三條命令皆可以開啟web服務
第一條命令,預設web服務訪問的埠是8000
第二條則指定是更改埠為8080,通常是在埠衝突的情況下使用
第三條意味著是可以通過區域網其他終端訪問本機的web服務,其0 是 0.0.0.0 廣播
python manage.py runserver
python manage.py runserver 8080
python manage.py runserver 0:8000
建立應用
- 專案(站點) vs 應用
- web應用有資料庫儲存,weblog系統
- 專案是一個包含特定站點應用和配置的集合
- 一個專案包含多個應用,一個應用可以在多個專案中
換句話而言,由
django-admin
生成是專案(或站點),而由python manage.py
建立為應用
python manage.py startapp polls
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
建立檢視
- polls/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
配置UrlConf
- 將應用的
urlconf
配置指向專案根urlconf
,以便Django
通過配置路由可以找到檢視 - 在
polls
資料夾下新增urls
配置檔案polls/urls.py
檔案 ,django.urls.include
函式匯入url
配置
# polls/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
# mysite/urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
重新啟用web服務
python manage.py runserver
訪問http://localhost:8000/polls/
可見自定義檢視
附錄
django.urls.include
函式允許引入外部url配置,將path
方法正則匹配到的url傳送到對映處理器_path(route, view, kwargs=None, name=None, Pattern=None)
- 該方法是
django.urls.path
原型 route
一個包含url
正則的字串,Django
會從urlpatterns
列表中依次匹配- 需要注意的是它並不關心
http
謂詞GET/POST
- 需要注意的是它並不關心
view
若匹配正則,會呼叫一個檢視函式,該檢視函式預設的第一個引數是一個HttpRequest
物件path() argument: name
命名引數,方便在其他的地方引用,類似於其他同類框架中的命名路由
- 該方法是