Django學習筆記(二)URL編寫規則

2022-05-27 14:09:09 字數 2855 閱讀 4222

from django.contrib import admin

from django.urls import path

urlpatterns = [ # 整個專案的url集合,每個元素代表一條url資訊

path('admin/', admin.site.urls), # 設定admin的url,'admin/'代表127.0.0.1::8000/admin位址資訊,admin後面的斜槓是路徑分隔符,admin.site。urls是url的處理函式,也稱為檢視函式

path('', include('index.urls')) # url為空,代表為**的網域名稱,即127.0.0.1:8000,通常是**的首頁;include將該url分發給index的urls.py處理

]

# index的urls.py

from django.urls import path

from . import views

urlpatterns = [

path('', views.index)

]

上述**匯入了同一目錄下的views.py,該檔案用於編寫檢視函式,處理url請求資訊並返回網頁內容給使用者。因此,在views.py中編寫index函式的處理過程:

return httpresponse("hello world!")index函式必須設定引數request,該引數代表當前使用者的請求物件,該物件包含使用者名稱、請求內容和請求方式等資訊,檢視函式執行完成後必須使用return將處理結果返回,否則會丟擲異常。

# index的urls.py

return httpresponse(str(year) + '/' + str(month) + '/' + str(day))

在瀏覽器中輸入

引入正規表示式規範日期格式:

# index的urls.py

from django.urls import path, re_path

from . import views

urlpatterns = [

path('', views.index),

#path('//', views.mydate),

re_path('(?p[0-9])/(?p[0-9])/(?p[0-9]).html', views.mydate)

]

在瀏覽器中輸入.html

注意:如果url末端使用正規表示式,應加上斜槓或其他字元,否則正規表示式無法生效。如上例若沒有.html,則在瀏覽器中輸入無限長的字串也能正常訪問。

##設定引數name

django還可對url進行命名。在index中新增以下**:

urls.py

```python

re_path('(?p[0-9]).html', views.myyear, name='myyear')

```views.py

```python

def myyear(request, year):

return render(request, 'myyear.html')

```在templates資料夾中新增myyear.html:

```html

title

2019 old archive

2019 archive

```整個執行流程:

1. 使用者訪問url時,程式根據url選擇檢視函式myyear處理,並將該url命名為myyear。

2. 檢視函式myyear將模板myyear.html作為響應內容並生產網頁返回。

3. 在模板myyear.html中設定兩個a標籤,都指向命名為myyear的url位址。

4. 第二個a標籤的href為,這是django的模板語法,以表示。其中url 'myyear'是將命名為myyear的url位址資訊作為href屬性值;2019是該url的變數year,若url沒有設定變數值,則無需新增。

上述例子可以看出,模板中的myyear與urls.py所設定的引數name是一一對應的。引數name的作用是對該url位址資訊進行命名,然後在html模板中使用可以生成相應的url資訊。

採用第一張方法設定每個a標籤的href屬性值,若url位址資訊變更,就要修改每個a標籤的href屬性值。而設定引數name,只要引數name的值不變,無論url位址資訊如何改變都無需修改模板中a標籤的href屬性值。

引數型別是以字典的資料型別傳遞的,且該引數只能在檢視函式中讀取和使用。

Django學習筆記之url路由

一 django中路由的作用 其本質是url與該url要呼叫的檢視函式之間的對映,就是為告訴django對客戶端發過來的某個url應該呼叫執行哪一段邏輯 二 路由基本的配置 from django.conf.urls import url urlpatterns必須是乙個由url 例項組成的pyth...

Django學習筆記(二)

六 建立模型 在manage.py同一目錄中建立新的應用程式 這將建立乙個投票應用,其目錄結構如下 polls init py admin.py migrations init py models.py tests.py views.py 根據需求設計好資料庫的表 並在polls models.py...

Django學習筆記 二

file new project 左側選擇django,右邊選擇python環境 如圖所示 settings.py 配置檔案相關 urls.py 存放路徑和函式對應關係檔案 wsgi.py 跟socket通訊相關 manage.py 所有管理django專案的入口檔案從manage.py開始 開始乙...