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開始 開始乙...