Django 模板渲染

2022-03-17 20:51:02 字數 3602 閱讀 2234

參考文件:

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框架將資料庫裡面的字段顯示到前台頁面上:

models.py裡新建相關表_author

views.py提供資料查詢及返回相關結果_result

#

models.py

from django.db import

models

#create your models here.

class

author(models.model):

name=models.charfield(u'

姓名',max_length=50

) qq=models.charfield(max_length=10

) addr=

models.textfield()

email=

models.emailfield()

def__str__

(self):

return self.name

#

views.py

author

defquery(request):

#result=author.objects.all()

result=author.objects.values_list() #

返回資料庫查詢結果(sql:select * from author ),list型別,

"> #引用bootstrap**樣式

result of query

#遍歷迴圈賦值

}

一切ok的話,啟動伺服器,結果如下:

但是這裡有乙個問題,我在views.py裡面使用的result=author.objects.values_list() ,是把該錶的所有資料都取出來了。如果現在只想取某幾個欄位的資料(不想要id欄位),目前我的能力有兩種方法解決:

1、views.py裡面直接查詢我想要的字段:

result=author.objects.values_list('

name

','qq

','addr

','email

') 結果對比,可以在django shell裡面看到:

>>> print

(str(author.objects.values_list().query))

select

""."

id", "

"."name

", "

"."qq

", ""."

addr", .

"email"

from

">>> print (str(author.objects.values_list('

name

','qq

','addr

','email

').query))

select

""."

name

", "

"."qq

", "

"."addr

", "".

"email

" from "

"

頁面顯示效果:

2、views.py裡查詢條件不變,更改urls裡的迴圈條件,即不輸出查詢結果列表裡面第乙個資料(id欄位):

(模板裡列表索引取值為 i.n,而不是python裡面的i[1])

class="

table table-hover

">

result of query

}}}}

頁面顯示效果:

完工!

tips:

Django 渲染到模板

簡單的路由操作 from index import views urlpatterns path admin admin.site.urls path index views.index index應用下的 views 檔案進行輸出到模板方法 第一步 template新建 index.html 第二...

Django模板渲染 (二)

模板是由html 和一些邏輯控制 組成的,邏輯控制 除了前面介紹的變數和過濾器,還要乙個非常重要的模板標籤。模板標籤的語法規則是,模板標籤在渲染的過程中能提供任意的邏輯關係,模板標籤一般都有著與之對應的結束標籤,其標籤名為在原來的標籤名前加上end。下面介紹下一些常用的模板標籤。條件標籤用於判斷,可...

Django之 靜態模板渲染

既可以簡單的 django.http.httpresponse 來把內容顯示到網頁上,也可以使用渲染模板的方法來顯示內容。說明 是基於 django 1.8,但 django 1.4 djagno 1.11 操作流程也是一樣的。1.建立乙個 sundyblog 專案,和乙個 名稱為 blog 的應用...