如何向請求者返回乙個漂亮的頁面呢?肯定需要用到先看看如何拼接html、css
,如果想要更炫的效果還要加入js
,問題來了,這麼一堆字串全都寫到檢視中,作為httpresponse()
的引數嗎?
html
:"""圖書首頁"""
if request.method ==
"get"
: res_html =""
books =
["射鵰英雄傳"
,"神鵰俠侶"
,"倚天屠龍記"
這樣定義就太麻煩了吧,並且定義字串是不會出任何效果和錯誤,如果有乙個專門定義前端頁面的地方就好了。
在django
中,將前端的內容定義在模板
中,然後再把模板交給檢視呼叫,各種漂亮、炫酷的效果就出現了。
在django
專案下建立templates
目錄然後在建立book
目錄,代表這存放著book
應用的模板檔案。
目錄結構如下圖:
在django
專案下的setting.py
檔案中找到templates
配置選項,配置如下目錄路徑
'dirs'
:[base_dir /
'templates'
]
templates =[,},]
base_dir = path(__file__)
.resolve(
).parent.parent
base_dir
是你django
專案的絕對路徑
可以在終端控制台輸入如下命令
python manage.py shell
開啟專案的shell
終端進行除錯。
開啟templtes/book/index.html
檔案,定義**如下:
"zh-hans"
>
"utf-8"
>
"viewport" content=
"width=device-width, initial-scale=1.0"
>
圖書資訊<
/title>
<
/head>
}<
/h2>
}---
}<
/li>
<
/ul>
<
/body>
<
/html>
在模板中輸出變數語法如下,變數可能是從檢視中傳遞過來的,也可能是在模板中定義的。
}
在模板中編寫**段語法如下:
更多模板語法這裡就不一一敘述了。
呼叫模板分為三步驟:
:"""圖書資訊檢視類"""
defget
(self, request)
:# 從資料庫中獲取圖書資訊
books = bookinfo.objects.
all(
)# 獲取模板
tmp = loader.get_template(
'book/index.html'
)# 定義上下文
context =
# 渲染模板
在瀏覽器上訪問效果如下圖
檢視呼叫模板都要執行以上三部分,於是django
提供了乙個函式render
封裝了以上**。
函式render
包含3個引數:
呼叫render
的**如下:
from django.views import view
from book.models import bookinfo
from django.shortcuts import render
# /book/info
class
infoview
(view)
:"""圖書資訊檢視類"""
defget
(self, request)
:# 從資料庫中獲取圖書資訊
books = bookinfo.objects.
all(
)# 定義上下文
context =
return render(request,
"book/index.html"
, context)
新建資料夾x
大自然用數百億年創造出我們現實世界,而程式設計師用幾百年創造出乙個完全不同的虛擬世界。我們用鍵盤敲出一磚一瓦,用大腦構建一切。人們把1000視為權威,我們反其道行之,捍衛1024的地位。我們不是鍵盤俠,我們只是平凡世界中不凡的締造者 。
Django 教程 Django 模型
乙個django模組是內建的功能,django使用建立表,他們的田地,和各種約束。簡而言之,django models是與django一起使用的sql資料庫。sql 結構化查詢語言 很複雜,涉及許多不同的查詢,用於建立,刪除,更新或與資料庫有關的任何其他內容。django模型簡化了任務並將表組織到模...
Django教程 Django 2 0入門
django是乙個千篇一律的python web框架,受ruby on rails的啟發,並使用許多相同的隱喻使web開發變得輕鬆快捷。django滿載且靈活,已成為python使用最廣泛的web框架之一。django實際上包含了構建任何大小的web應用程式所需的所有內容,並且它的普及使得查詢示例和...
Django1 8教程 安裝Django
你是不是對django的學習感到迷茫?是不是對網上零星的教程感到絕望?是不是苦於沒有可以迅速上手的例項而發愁?如果你同我一樣有這些感受,那麼 django.by.example 這本書將是你指路的明燈。本書基於django1.8 python3.4的環境,裡面包含了個人部落格 社交 購物平台等具有實...