Django教程 Django模板

2021-10-11 03:13:41 字數 3512 閱讀 1822

如何向請求者返回乙個漂亮的頁面呢?肯定需要用到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的環境,裡面包含了個人部落格 社交 購物平台等具有實...