這篇文章給大家分享的是有關(guān)Django中視圖怎么用的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),網(wǎng)頁空間、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,服務(wù)器機(jī)柜租賃,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國大陸、港澳臺以及歐美等多個國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。
隨著我們的Web站點頁面越來越多,頁面鏈接會越來越雜亂無章。因此有必要在項目一開始就對其進(jìn)行管理。
1) 實現(xiàn)/articles/123
的效果
urls.py文件可以這么寫:
views.py實現(xiàn)了articles方法
這其中url()函數(shù)具有四個參數(shù), regex和view是必填選項,kwargs和name是非必填選項 regex
: 正則表達(dá)式的縮寫。Djaogo從第一個正則表達(dá)式開始,依次對請求url進(jìn)行匹配,直到找到匹配到那個為止。 view
: 目標(biāo)視圖,即views.py文件中的函數(shù)。 kwargs
: 任何關(guān)鍵字參數(shù)都可以以字典形式傳遞給目標(biāo)視圖。 name
: 命名你的URL, 相當(dāng)于給url取個別名。 這樣就可以在Django的其它地方尤其是模板中,通過名稱來明確地引用這個URL。 這個強(qiáng)大的特性可以使你僅僅修改一個文件就可以改變?nèi)值腢RL模式。
學(xué)到這里,你會許會有個疑問。web頁面應(yīng)該含有html代碼的,為什么我沒有看到html頁面呢?我的web頁面不能單單只是一句話,應(yīng)該有導(dǎo)航欄,內(nèi)容欄,底部欄吧。要滿足這需求,則需要用到渲染模板的方法來顯示內(nèi)容。
為了方便理解,引用以上篇文章的例子
test目錄下新建一個 templates 文件夾, 里面新建一個base.html 和 home.html
新建base.html目的是為了代碼復(fù)用。把一些通用的部分,例如導(dǎo)航,底部,訪問統(tǒng)計代碼等抽取出來封裝成一個頁面:nav.html、 bottom.html、 #html。
我們的首頁 home.html,繼承或者說擴(kuò)展(extends)原來的 base.html,可以簡單這樣寫,重寫部分代碼(默認(rèn)值的那一部分不用改)。代碼如下:
url.py文件增加相對應(yīng)的url函數(shù)就行,而views.py文件就需要改動了。
使用render()函數(shù)載入一個模板進(jìn)行渲染。
該函數(shù)有三個參數(shù),將請求對象作為它的第一個參數(shù),模板的名字作為它的第二個參數(shù),一個字典作為它可選的第三個參數(shù)。 它返回一個HttpResponse對象,含有用給定的context 渲染后的模板。
view.py屬于View層,是用于顯示界面。但是在實際應(yīng)用中,往往view的數(shù)據(jù)不是寫死的,是由模型層傳輸過來的。怎么將model層傳輸過來數(shù)據(jù)顯示在視圖上呢?Django模板算是利器,它具有循環(huán)、條件判斷、常用的標(biāo)簽、過濾器等功能,這能消除我們的剛才的煩惱。
首先,我們應(yīng)該知道兩個知識點。分別是:
1)標(biāo)簽的寫法: 使用{% 標(biāo)簽 %}
, 例如
2)變量的寫法: 使用{{ 變量 }}
, 例如
補(bǔ)充知識
1)在for循環(huán)中還有很多有用的東西,如下:
變量 | 描述 |
---|---|
forloop.counter | 索引從 1 開始算 |
forloop.counter0 | 索引從 0 開始算 |
forloop.revcounter | 索引從最大長度到 1 |
forloop.revcounter0 | 索引從最大長度到 0 |
forloop.first | 當(dāng)遍歷的元素為第一項時為真 |
forloop.last | 當(dāng)遍歷的元素為最后一項時為真 |
forloop.parentloop | 用在嵌套的 for 循環(huán)中,獲取上一層 for 循環(huán)的 forloop |
2)如果想表示空值,代碼如下
感謝各位的閱讀!關(guān)于“Django中視圖怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!