Django基礎(4 專案之URLs)

2021-08-28 03:48:05 字數 2655 閱讀 2344

前面通過 models 和 admin 我們實現了對資料的建立和管理,就算是把資料庫部分給準備好了

回到第一篇(給出的圖(心中一定要時刻有這張圖,編寫過程才不會迷路)

客戶端發來的請求先經過 wsgi ,但 django 已經為我們準備好了 wsgi,就在 mysite/wsgi.py 檔案裡,所以我們可以不管他,下一步中我們發現 wsgi 又發給了 urls,urls 再轉到 views,本篇就來介紹和編寫 urls 路由系統

1. 路由幹什麼的?urls 得到瀏覽器請求的 url 後,對照路由表,然後分配到子路由或者轉到功能函式,可以認為它是個導航系統

2.  總路由 mysite/urls.py

路由資訊儲存在 urls.py 檔案裡面,專案名字下的叫總路由,所有的 url 都先發到這裡來做對照,在分發給對應的子路由,也就是每個應用的路由,在我們的專案中,總路由就是 mysite/urls.py,子路由就應該是 polls/urls.py,這個檔案我們待會兒手動建立,現在先看總路由 mysite/urls.py

開啟 mysite/urls.py

(1)裡面預設有** path('admin/', admin.site.urls),這就是為什麼我們能用   訪問管理員頁面,因為這裡匹配了 admin 這個url,順便補充一下:  是本機 ip 位址和埠,我們的伺服器就執行在上面

(2)在路由表 urlpatterns 裡新增 url 及 對應分發的子路由檔案的**,**中的 path() 用於匹配路由 include() 用來分發個子路由,引數是子路由的檔名,這個引數檔案 『polls.urls』 我們等下就建立,通過此行**,我們就成功的把 url 裡匹配到 'polls' 的 url 分發到 polls 應用的路由

"""mysite url configuration

the `urlpatterns` list routes urls to views. for more information please see:

examples:

function views

2. add a url to urlpatterns: path('', views.home, name='home')

class-based views

2. add a url to urlpatterns: path('', home.as_view(), name='home')

including another urlconf

1. import the include() function: from django.urls import include, path

2. add a url to urlpatterns: path('blog/', include('blog.urls'))

"""from django.contrib import admin

from django.urls import path

# 匯入include來分發路由

from django.urls import include

# urlpatterns就是路由表

urlpatterns = [

# path()用於匹配路由

# include()用來分發個子路由,引數是子路由的檔名

path('polls/', include('polls.urls')),

path('admin/', admin.site.urls),

]

3. 子路由 polls.urls.py子路由的功能和總路由有所不同:總路由只負責把 url 分發給對應的子路由,而子路由直接根據 url 繫結 views 裡對應的業務功能

(1)建立 polls.urls.py

(3)編寫路由表:path()負責繫結業務功能

第乙個引數是url,url裡的引數用'< >'包裹

第三個引數代表該條url的名字

# 自建的路由檔案

# 匯入path來匹配url

from django.urls import path

# 匯入當前目錄下的views

from . import views

# 確定命名空間

# 子路由表

urlpatterns = [

# path()負責繫結業務功能

# 第乙個引數是url,url裡的引數用'< >'包裹

# 第二個引數是繫結的業務功能,***.as_view()把***類作為業務功能

# 第三個引數代表該條url的名字

path('', views.indexview.as_view(), name='index'),

path('/', views.detailview.as_view(), name='detail'),

path('/results/', views.resultsview.as_view(), name='results'),

path('/vote/', views.vote, name='vote'),

]

Django基礎(2 專案之Models)

1.安裝 django啟用乙個虛擬環境後 例如我的是 csdn 執行命令 conda install django 進行安裝 檢測是否安裝成功 執行命令 python m django version,如果顯示版本號則代表成功 2.建立專案 選擇想要的路徑,執行命令 django admin sta...

Django基礎1 專案搭建

這邊先介紹市場流行版本 django 1.11.7 啟動的ip 埠,或直接 埠 python manage.py runserver 0.0 0.0 8000 8000python manage.py makemigrations 本地生成遷移 python manage.py migrate 資料...

Django 基礎(二) 專案搭建指南

在python的終端視窗下執行以下命令,如圖 提前安裝 mysqlclient 擴充套件庫,開啟 cmd 視窗執行 或通過whl檔案安裝 pip install mysqlclient開啟全域性 settings.py 檔案,修改以下兩部分 配置資料庫 databases django.contri...