預設值
在url寫路由關係的時候可以傳遞預設引數,如下:
url(r'^index/', views.index,),
這樣在檢視函式中,就可以獲取這個預設引數name:
命名空間
通過下面例子理解:
在專案的urls裡寫入如下**:
urlpatterns =["urlpatterns =[url(r
'^a/
',include("
",namespace="
author"))
]
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 htmltp1.html繼承tp.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
>
主機管理tp2.html繼承tp.html,**如下:<
h1>使用者管理
h1>
使用者管理這樣最後登入tp1和tp2的效果如下:<
h1>使用者管理
h1>
這樣就實現了繼承,但是這裡有個問題,如果tp1和tp2中自己想寫自己單獨的css以及js的話,就需要做如下操作:
在head的最下面寫如下**:
在body的最下面寫如下**:
這樣在tp1以及tp2中就可以自定義自己的css
例如在tp1中新增如下**:
<這樣再次訪問tp1.html的時候效果如下,而訪問tp2的時候效果不會發生變化:style
>
body
style
>
當有一些小的標籤很多頁面都需要用到的時候我們可以單獨在乙個html中將寫標籤,在tp1中以及tp2中通過include呼叫
具體如下,新新增乙個tag.html,**如下:
<在tp1.html中**如下:form
>
<
input
type
="text"
>
<
input
type
="text"
>
form
>
<這樣最後的效果如下: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...