Django實(shí)現(xiàn)將views.py中的數(shù)據(jù)傳遞到前端html頁(yè)面_第1頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、django實(shí)現(xiàn)將views.py中的數(shù)據(jù)傳遞到前端html頁(yè)面自學(xué)django已經(jīng)有一周啦,想把自己自學(xué)過(guò)程中的每一步都記錄下來(lái),給一些零基自學(xué)django的戰(zhàn)友們一些參考;本次主要內(nèi)容為,用一個(gè)實(shí)例呈現(xiàn)views.py中的數(shù)據(jù)是如何傳遞到html頁(yè)面,并在頁(yè)面中展示。我的項(xiàng)目已經(jīng)創(chuàng)建好,我的app為song03apptest。由于我的項(xiàng)目和環(huán)境的相關(guān)配置已經(jīng)配置好,假如是第一天開(kāi)頭學(xué)習(xí)django的童鞋,請(qǐng)先看我的入門教程,第一個(gè)django實(shí)例。本文重點(diǎn)在于用實(shí)例來(lái)解釋views和html前臺(tái)頁(yè)面的傳遞。1.打開(kāi)我的app,song03apptest下的views.py編寫views.p

2、y文件,代碼如下:2.配置urls.py,其中song03apptest為我的app名稱代碼如下:3.在templates下創(chuàng)建year_test.html,編寫頁(yè)面,內(nèi)容如下:4.運(yùn)行服務(wù)器,并在掃瞄器中輸入頁(yè)面展示如下:點(diǎn)擊后可見(jiàn)在views.py中用法years=range(1997, 2018)生成的列表,頁(yè)面效果如下:補(bǔ)充學(xué)問(wèn):django views.py 和 html 之間參數(shù)傳遞關(guān)系django中的view部分,就是如何用代碼來(lái)與models中定義的字段舉行交互。與傳統(tǒng)mvc分層定義略有不同的是,在django中,view的功能是對(duì)頁(yè)面哀求舉行響應(yīng)和規(guī)律控制,而頁(yè)面內(nèi)容的表示則

3、由django的template模板來(lái)完成。我們可以把django的view理解為實(shí)現(xiàn)各種功能的python函數(shù),view負(fù)責(zé)接受url配置文件urls.py中定義的url轉(zhuǎn)發(fā)并響應(yīng)處理,當(dāng)django收到哀求之后調(diào)用相應(yīng)的view函數(shù)來(lái)完勝利能,article模塊中的views.py文件代碼定義如下:views.py代碼定義這是一段簡(jiǎn)潔的python代碼,讓我們看看在這段代碼里面django的函數(shù)做了哪些工作吧:list.objects.all辦法返回news列表中全部的記錄項(xiàng),django可以按照后臺(tái)數(shù)據(jù)庫(kù)轉(zhuǎn)換成相應(yīng)的sql語(yǔ)句,在后臺(tái)數(shù)據(jù)庫(kù)中執(zhí)行并返回查詢結(jié)果。每一條article文章都

4、有item_set屬性,代表news新聞條目中的每一個(gè)item項(xiàng)。假如需要設(shè)置查詢條件,也可以用法item_set.filter辦法來(lái)返回符合特定要求的item項(xiàng)。render_to_response函數(shù)返回掃瞄器指定的html頁(yè)面,頁(yè)面為django的template模板,負(fù)責(zé)展示被哀求的頁(yè)面內(nèi)容。在view部分的代碼中,已經(jīng)指定了頁(yè)面顯示模板為news_report.html。其實(shí),在django工程中創(chuàng)建模板是一件十分便利的事情,下面要在article名目?jī)?nèi)創(chuàng)建這個(gè)模板頁(yè)面,首先新建一個(gè)名為templates的文件夾,然后在這個(gè)模板名目里創(chuàng)建所需的news_report.html模板文件

5、,模板的代碼如下:news_report模板代碼普通來(lái)說(shuō),django的模板代碼和一般的html代碼看上去沒(méi)有太大差別,只是添加了django特定的模板標(biāo)志,這些標(biāo)志允許開(kāi)發(fā)者為django模板添加頁(yè)面規(guī)律,比喻說(shuō)將views.py中render_to_response函數(shù)返回的數(shù)據(jù)庫(kù)結(jié)果集顯示在頁(yè)面中,django特有的標(biāo)簽在模板頁(yè)里以%作為開(kāi)頭并以%作為結(jié)束。嵌入django模板的變量則以作為開(kāi)頭并以結(jié)束。在上面的模板代碼里面,用到了標(biāo)志% for news_dict in article_listing %以及% endfor %。這樣的標(biāo)志告知django模板處理機(jī)制循環(huán)取出news中

6、的item項(xiàng)輸出在頁(yè)面中,在for循環(huán)內(nèi)部,通過(guò)article_listing的屬性得到view中對(duì)應(yīng)的數(shù)據(jù)項(xiàng)字段的值并顯示每個(gè)news項(xiàng)的title標(biāo)題以及news中的item項(xiàng)數(shù)目。當(dāng)django的view和template都已經(jīng)預(yù)備妥善,下面僅需要幾步配置來(lái)告知django存儲(chǔ)工程應(yīng)用的模板位置,這需要對(duì)配置文件setting.py中的template_dirs項(xiàng)舉行設(shè)置。在本例中加入模板文件"news_report.html"的存儲(chǔ)路徑就可以讓django把對(duì)view舉行處理的結(jié)果集通過(guò)指定模板返回。根據(jù)本例應(yīng)用的結(jié)構(gòu),template_dirs參數(shù)

7、的內(nèi)容設(shè)置為:這里不要遺忘django需要在路徑的最末尾添加一個(gè)逗號(hào)。接下來(lái)僅需要設(shè)置拜訪article時(shí)的url轉(zhuǎn)向地址就可以。打開(kāi)urls.py文件,在admin后臺(tái)管理的轉(zhuǎn)向地址下一行添加如下語(yǔ)句:在這里語(yǔ)段的最末尾,也需要有逗號(hào)標(biāo)志段落的結(jié)束。在這里可以看到,django的url轉(zhuǎn)發(fā)設(shè)計(jì)的十分簡(jiǎn)潔,在配置文件urls.py中對(duì)應(yīng)于view的轉(zhuǎn)發(fā)哀求都由兩部分組成,第一部分遵循正則表達(dá)式指定相匹配的url地址,其次部分是對(duì)應(yīng)在view里面處理轉(zhuǎn)發(fā)哀求的函數(shù)。完成了這些步驟,就可以在指令提醒符下再次啟動(dòng)django服務(wù)器,看一下上述努力的成績(jī)了,在掃瞄器中打開(kāi)鏈接將會(huì)看到新聞列表的返回界面。頁(yè)面中顯示了數(shù)據(jù)庫(kù)中已添加全部新聞的分類統(tǒng)計(jì)信息。值得一提的是,django模板支持多層嵌套,并且每一層都可以用法div+css方式完成布局,可以便利的讓站點(diǎn)頁(yè)面遵循統(tǒng)一風(fēng)格,看起來(lái)美觀大方。在上述囫圇過(guò)程中,對(duì)用法django舉行web開(kāi)發(fā)舉行了初步的介紹。在應(yīng)用中寫的python代碼不過(guò)幾十行,比較起來(lái)其他的開(kāi)發(fā)語(yǔ)言,django顯得十分便捷有用,最后再往返顧一下django都協(xié)助我們做了哪些工作吧:通過(guò)django的對(duì)象關(guān)系映射模型建立了存儲(chǔ)新聞分

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論