Django學習筆記(二)
阿新 • • 發佈:2018-11-10
【建立一個投票APP】
在Django的專案裡,每個APP約定俗成由一個python的包構成。Django會自動生成APP的目錄結構,這樣你就可以專心編寫程式碼而不用為組織目錄煩惱了。
Projects 和 APP 的區別: APP是實現某一具體的需求,Projects是一系列需求的集合。一個網站可以看作Projects,網站中的一個登陸頁可以看作一個APP。
APP目錄可以放置在任意的python模組路徑下。在教程中,我們把投票APP放置在manage.py檔案的同級目錄下,這樣該目錄就是自身最上層模組,匯入時就不用引用mysite這個模組了。
在manage.py同級目錄下執行命令: python manage.py startapp polls
執行成功後將建立APP 目錄
【完成第一個檢視】 開啟polls/views.py,寫入以下程式碼: from django.http import HttpResponse def index(request): return HttpResponse("Hello,world!This is polls index.");
這是最簡單的django檢視。為了展示這個檢視,我們需要配置URL對映並且需要一個URLconf 建立polls/urls.py檔案,寫入以下程式碼: from django.urls import path from . import views urlpatterns = [ path('',views.index,name='index'), ]
接下來將配置根目錄URL檔案,在mysite/urls.py檔案
寫入程式碼:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('polls/',include('polls.urls')),
]
上述程式碼匯入了include模組,向根URL新增polls.urls路徑。 include() 函式可以引用其他url配置,include的設計思想來源於“即插即用",因為polls有自己的URL配置檔案,他們能夠在"polls/"這個路徑匹配時被替換,或者在根目錄配置成"fun_polls/"、"content/polls"或其他任何你喜歡的路徑,這個app都會正常執行。
原則上,任何APP的路徑都應該這麼配置,除了"admin.site.urls"這個特殊路徑。 path() 函式可傳入4個引數:route, view, kwargs, name
Projects 和 APP 的區別: APP是實現某一具體的需求,Projects是一系列需求的集合。一個網站可以看作Projects,網站中的一個登陸頁可以看作一個APP。
APP目錄可以放置在任意的python模組路徑下。在教程中,我們把投票APP放置在manage.py檔案的同級目錄下,這樣該目錄就是自身最上層模組,匯入時就不用引用mysite這個模組了。
在manage.py同級目錄下執行命令: python manage.py startapp polls
執行成功後將建立APP 目錄
【完成第一個檢視】 開啟polls/views.py,寫入以下程式碼: from django.http import HttpResponse def index(request): return HttpResponse("Hello,world!This is polls index.");
這是最簡單的django檢視。為了展示這個檢視,我們需要配置URL對映並且需要一個URLconf 建立polls/urls.py檔案,寫入以下程式碼: from django.urls import path from . import views urlpatterns = [ path('',views.index,name='index'), ]
接下來將配置根目錄URL檔案,在mysite/urls.py檔案
上述程式碼匯入了include模組,向根URL新增polls.urls路徑。 include() 函式可以引用其他url配置,include的設計思想來源於“即插即用",因為polls有自己的URL配置檔案,他們能夠在"polls/"這個路徑匹配時被替換,或者在根目錄配置成"fun_polls/"、"content/polls"或其他任何你喜歡的路徑,這個app都會正常執行。
原則上,任何APP的路徑都應該這麼配置,除了"admin.site.urls"這個特殊路徑。 path() 函式可傳入4個引數:route, view, kwargs, name
route | URL的匹配模式,Django預設從URL列表按順序匹配。它不會匹配host地址或GET、POST的附加引數 |
view | 當符合route的匹配模式時,Django呼叫view方法。方法的第一個引數是HttpRequest物件,並接收其他從URL中“捕獲”到的鍵值對引數 |
kwargs | 通過字典的形式可以向目標view傳遞任意的key-value引數 |
name | 給你的URL起個名字,方便在其他地方明確的引用。這個強大的特效能夠讓你輕易的對專案的URL匹配模式做出全域性改變 |