參考文件: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
#一切ok的話,啟動伺服器,結果如下:views.py
author
defquery(request):
#result=author.objects.all()
result=author.objects.values_list() #
返回資料庫查詢結果(sql:select * from author ),list型別,
"> #引用bootstrap**樣式
result of query
#遍歷迴圈賦值
}
但是這裡有乙個問題,我在views.py裡面使用的result=author.objects.values_list() ,是把該錶的所有資料都取出來了。如果現在只想取某幾個欄位的資料(不想要id欄位),目前我的能力有兩種方法解決:
1、views.py裡面直接查詢我想要的字段:
result=author.objects.values_list('
name
','addr
') 結果對比,可以在django shell裡面看到:
(str(author.objects.values_list().query))
select
""."
id", "
"."name
", "
", ""."
addr", .
"email"
from
">>> print (str(author.objects.values_list('
name
','addr
').query))
select
""."
name
", "
", "
"."addr
", "".
" 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 的應用...