Django 中url補充以及模板繼承

2021-09-07 08:30:47 字數 3204 閱讀 2108

預設值

在url寫路由關係的時候可以傳遞預設引數,如下:

url(r'^index/', views.index,),

這樣在檢視函式中,就可以獲取這個預設引數name:

命名空間

通過下面例子理解:

在專案的urls裡寫入如下**:

urlpatterns =[

url(r

'^a/

',include("

",namespace="

author"))

]

"urlpatterns =[

url(r

'^index/

',views.index,name="

index")

] 最後在views檢視函式中寫入如下**:

")當訪問頁面

我們在檢視函式中寫的函式中都加了乙個request引數,我們可以通過from django.core.handlers.wsgi import wsgirequest 匯入之後通過request.environ檢視詳細的資訊

而request.environ是乙個字典我們迴圈之後列印:

for k,v in

(request.environ).items():

print(k,v)

則可以看到整個請求頭的資訊

如果自己的**中每個頁面都有上面這個部分,如果我們在每個頁面都重複寫這段**就會很麻煩,並且改動起來也需要每個都改動,為了這種需求,模板繼承可以解決這個問題

把相同的東西寫入到模板中,如果某個部分不同則:

而在要繼承模板的**中首先:

表示要繼承的模板

這樣就繼承了模板中的內容

具體**如下:

模板中**如下tp.html:

doctype html

>

<

html

lang

="en"

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>

title

>

<

link

rel="stylesheet"

href

="/static/common.css"

>

head

>

<

body

>

<

div

class

="pg-header"

>

我的**

div>

body

>

html

>

tp1.html繼承tp.html**如下:

主機管理

<

h1>使用者管理

h1>

tp2.html繼承tp.html,**如下:

使用者管理

<

h1>使用者管理

h1>

這樣最後登入tp1和tp2的效果如下:

這樣就實現了繼承,但是這裡有個問題,如果tp1和tp2中自己想寫自己單獨的css以及js的話,就需要做如下操作:

在head的最下面寫如下**:

在body的最下面寫如下**:

這樣在tp1以及tp2中就可以自定義自己的css

例如在tp1中新增如下**:

<

style

>

body

style

>

這樣再次訪問tp1.html的時候效果如下,而訪問tp2的時候效果不會發生變化:

當有一些小的標籤很多頁面都需要用到的時候我們可以單獨在乙個html中將寫標籤,在tp1中以及tp2中通過include呼叫

具體如下,新新增乙個tag.html,**如下:

<

form

>

<

input

type

="text"

>

<

input

type

="text"

>

form

>

在tp1.html中**如下:

<

h1>使用者管理

h1>

這樣最後的效果如下:

Django 中url補充以及模板繼承

預設值 在url寫路由關係的時候可以傳遞預設引數,如下 url r index views.index,這樣在檢視函式中,就可以獲取這個預設引數name 命名空間 通過下面例子理解 在專案的urls裡寫入如下 urlpatterns url r a include namespace author ...

Django 中url補充以及模板繼承

預設值 在url寫路由關係的時候可以傳遞預設引數,如下 url r index views.index,這樣在檢視函式中,就可以獲取這個預設引數name 命名空間 通過下面例子理解 在專案的urls裡寫入如下 urlpatterns url r a include namespace author ...

Django中url匹配規則的補充

django中url匹配規則是在urls.py檔案中配置的。1 關於正則匹配優先順序 在url匹配列表中,如果第一條和第二條同時滿足匹配規則,則優先匹配第一條。在url匹配列表中,如果第一條為正則模糊匹配,第二條為精確匹配,則優先匹配第一條。如下 url r 2016 0 9 views.001 u...