Django 基礎(一) url配置和傳參

2021-10-01 18:25:32 字數 2579 閱讀 1896

啟動服務。

1.一般匹配

path(

'hello/'

,'views.hello'

)

等效於

)因為在 settings.py 中預設配置了新增 『http://localhost:8000』 字首。

2.正則匹配

元字元用法舉例

指定字符集,可以單獨列出,也可以用『-』指定字元範圍。

[abc]、[a-c]匹配任意字元a、b、c。

^補充集合,匹配未在類**現的字元。

[^a]匹配除a之外的其他字元。

\後加元字元轉義元字元;後加特殊字元表示預定義字符集。

"\w"表示任何數字和字母字元,相當於[a-za-z0-9]。

其他元字元的使用參考 正規表示式howto。

3.全域性與區域性配置

from django.urls import path,re_path

urlpatterns =

[#以下兩種url路徑都可跳轉到 views.py 中的hello()方法。

path(

'hello/'

,hello)

, re_path(r'hello/\d/\w+/'

,hello)

,#正規表示式的模糊匹配

]

from django.contrib import admin 

from django.urls import path,re_path,inlcude

urlpatterns =

[ path(

'admin/'

, admin.site.urls)

,#系統自動建立的

path(

,include())

,# 匯入外部的urls模組

]

1. 一般引數

url傳遞的引數 和 檢視函式要接受的引數 數量和名字 必須一致,如下:

path(

'hello///'

, views.hello)`` #尖括號中是引數名字`,以檢視函式引數名要相同(除了request)

def

'你好'

)

如果將改為 ,會進行型別約束,如果傳入引數不為int型報錯,相似的有:

int:接收整數

str:字串

path:可以接收包含"/"的路徑

slug:接收【數字、字母、下劃線、中劃線】四種字元

3. 正則傳參

方法一:

用括號包圍的正規表示式形成乙個捕獲組,不僅匹配路徑,還可以捕獲資料。這時因為沒有命名所以使用順序傳參的方式傳給檢視函式。

re_path(

'hello/([a-z])/([0-9])'

, views.hello)

#包含兩個捕獲組

def

'你好'

)

方法二:

通過 「?p」 為正規表示式命名,這時便與一般傳參的要求相同: url 中的引數和檢視引數中的 名字數量必須相同。

re_path(

'hello/(?p[a-z])/(?p[0-9])'

, views.hello)

def

'你好'

)

正則匹配是模糊匹配時,實際傳參與取決於{}中的數字。舉個例子:

re_path(

'hello/(?p[a-z])/(?p[0-9])'

, views.hello)

假設 瀏覽器的 url 後兩個欄位為 「abc/18」 匹配上面的正規表示式,將name = 『liubei』,age = '18』傳入hello方法;

當 url 後兩個字段變為 「abcde/123」 同樣匹配上面的正規表示式,會將 name = 「abc」,age = "12"傳入hello方法。

Django的高階url配置

關於django的url配置,有特別多的方法和方式,最簡單的理解就是 from django.conf.urls.defaults import from mysite.views import hello,current datetime,hours ahead urlpatterns patte...

django安裝及url配置

建立專案 django admin startproject qingqing cd qingqing 啟動專案 python manage.py runserver 127.0.0.1 8001 cd qingqing django.contrib.admin django.contrib.aut...

Django的URL路由基礎

隨便新建個django專案,缺省會自動建立乙個 project name urls.py檔案,並自動包含一些內容,這就是專案的根url。如果要自己編寫url路由,基本也是這個套路。當使用者請求乙個頁面時,django根據下面的邏輯執行操作 1 決定要使用的根urlconf模組。通俗地講,就是你可以自...