Django—模板渲染
參考文檔:
http://www.cnblogs.com/fnng/p/4373108.html
https://code.ziqiangxuetang.com/django/django-intro.html
Django的學習已經(jīng)丟了很長一段時間了,時值年底,基本工作都差不多了,準備重新?lián)炱饋怼?/font>
學習心得也會有空mark一下!
準備作業(yè):讓我們一覽 Django 全貌urls.py
網(wǎng)址入口,關(guān)聯(lián)到對應的views.py中的一個函數(shù)(或者generic類),訪問網(wǎng)址就對應一個函數(shù)。
views.py
處理用戶發(fā)出的請求,從urls.py中對應過來, 通過渲染templates中的網(wǎng)頁可以將顯示內(nèi)容,比如登陸后的用戶名,用戶請求的數(shù)據(jù),輸出到網(wǎng)頁。
models.py
與數(shù)據(jù)庫操作相關(guān),存入或讀取數(shù)據(jù)時用到這個,當然用不到數(shù)據(jù)庫的時候 你可以不使用。
forms.py
表單,用戶在瀏覽器上輸入數(shù)據(jù)提交,對數(shù)據(jù)的驗證工作以及輸入框的生成等工作,當然你也可以不使用。
templates 文件夾
views.py 中的函數(shù)渲染templates中的Html模板,得到動態(tài)內(nèi)容的網(wǎng)頁,當然可以用緩存來提高速度。
admin.py
后臺,可以用很少量的代碼就擁有一個強大的后臺。
settings.py
Django 的設置,配置文件,比如 DEBUG 的開關(guān),靜態(tài)文件的位置等。
言歸正傳,本次主要解決的問題是,通過Django框架將數(shù)據(jù)庫里面的字段顯示到前臺頁面上:
?
一切ok的話,啟動服務器,結(jié)果如下:
但是這里有一個問題,我在views.py里面使用的result=Author.objects.values_list() ,是把該表的所有數(shù)據(jù)都取出來了。如果現(xiàn)在只想取某幾個字段的數(shù)據(jù)(不想要ID字段),目前我的能力有兩種方法解決:
1、views.py里面直接查詢我想要的字段:
result=Author.objects.values_list('name','qq','addr','email')
結(jié)果對比,可以在django shell里面看到:
頁面顯示效果:
2、views.py里查詢條件不變,更改urls里的循環(huán)條件,即不輸出查詢結(jié)果列表里面第一個數(shù)據(jù)(ID字段):
(模板里列表索引取值為 i.n,而不是python里面的i[1])
頁面顯示效果:
美觀一下,加上列標題:
完工!
?
Tips:
Django 模板查找機制: Django 查找模板的過程是在每個 app 的 templates 文件夾中找(而不只是當前 app 中的代碼只在當前的 app 的 templates 文件夾中找)。各個 app 的 templates 形成一個文件夾列表,Django 遍歷這個列表,一個個文件夾進行查找,當在某一個文件夾找到的時候就停止,所有的都遍歷完了還找不到指定的模板的時候就是 Template Not Found (過程類似于Python找包)。這樣設計有利當然也有弊,有利是的地方是一個app可以用另一個app的模板文件,弊是有可能會找錯了。所以我們使用的時候在 templates 中建立一個 app 同名的文件夾,這樣就好了。
這就需要把每個app中的 templates 文件夾中再建一個 app 的名稱,僅和該app相關(guān)的模板放在 app/templates/app/ 目錄下面
轉(zhuǎn)載于:https://www.cnblogs.com/Eric-Young/p/8298074.html
總結(jié)
以上是生活随笔為你收集整理的Django—模板渲染的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第1章 ZLG7290B 简介
- 下一篇: nginx和apache 配置