Django—模板渲染
參考文檔:
http://www.cnblogs.com/fnng/p/4373108.html
https://code.ziqiangxuetang.com/django/django-intro.html
Django的學習已經丟了很長一段時間了,時值年底,基本工作都差不多了,準備重新撿起來。
學習心得也會有空mark一下!
準備作業:讓我們一覽 Django 全貌urls.py
網址入口,關聯到對應的views.py中的一個函數(或者generic類),訪問網址就對應一個函數。
views.py
處理用戶發出的請求,從urls.py中對應過來, 通過渲染templates中的網頁可以將顯示內容,比如登陸后的用戶名,用戶請求的數據,輸出到網頁。
models.py
與數據庫操作相關,存入或讀取數據時用到這個,當然用不到數據庫的時候 你可以不使用。
forms.py
表單,用戶在瀏覽器上輸入數據提交,對數據的驗證工作以及輸入框的生成等工作,當然你也可以不使用。
templates 文件夾
views.py 中的函數渲染templates中的Html模板,得到動態內容的網頁,當然可以用緩存來提高速度。
admin.py
后臺,可以用很少量的代碼就擁有一個強大的后臺。
settings.py
Django 的設置,配置文件,比如 DEBUG 的開關,靜態文件的位置等。
言歸正傳,本次主要解決的問題是,通過Django框架將數據庫里面的字段顯示到前臺頁面上:
?
一切ok的話,啟動服務器,結果如下:
但是這里有一個問題,我在views.py里面使用的result=Author.objects.values_list() ,是把該表的所有數據都取出來了。如果現在只想取某幾個字段的數據(不想要ID字段),目前我的能力有兩種方法解決:
1、views.py里面直接查詢我想要的字段:
result=Author.objects.values_list('name','qq','addr','email')
結果對比,可以在django shell里面看到:
頁面顯示效果:
2、views.py里查詢條件不變,更改urls里的循環條件,即不輸出查詢結果列表里面第一個數據(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相關的模板放在 app/templates/app/ 目錄下面
轉載于:https://www.cnblogs.com/Eric-Young/p/8298074.html
總結
以上是生活随笔為你收集整理的Django—模板渲染的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第1章 ZLG7290B 简介
- 下一篇: nginx和apache 配置