教育行業A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

如何創建模板?Django視圖怎樣調用模板?

更新時間:2021年09月14日16時26分 來源:傳智教育 瀏覽次數:

如何向請求者返回一個漂亮的頁面呢?肯定需要用到html、css,如果想要更炫的效果還要加入js,問題來了,這么一堆字段串全都寫到視圖中,作為HttpResponse()的參數嗎?這樣定義就太麻煩了吧,因為定義字符串是不會出任何效果和錯誤的,如果有一個專門定義前端頁面的地方就好了
解決問題的技術來了:模板。在Django中,將前端的內容定義在模板中,然后再把模板交給視圖調用,各種漂亮、炫酷的效果就出現了

創建模板:
為應用booktest下的視圖index創建模板index.html,目錄結構如下圖:

創建和調用模板

'DIRS': [os.path.join(BASE_DIR, 'templates')],

創建和調用模板

定義模板

打開templtes/booktest/index.html文件,定義代碼如下在模板中輸出變量語法如下,變量可能是從視圖中傳遞過來的,也可能是在模板中定義的

{{變量名}}

在模板中編寫代碼段語法如下

{%代碼段%}

定義模板內容如下

<html>
<head>
    <title>圖書列表</title>
</head>
<body>
<h1>{{title}}</h1>
{%for i in list%}
{{i}}<br>
{%endfor%}
</body>
</html>

視圖調用模板

調用模板分為三步驟:
1.找到模板2.定義上下文3.渲染模板
打開booktst/views.py文件,調用上面定義的模板文件。

#coding:utf-8

from django.http import HttpResponse
from django.template import loader,RequestContext

def index(request):
    # 1.獲取模板
    template=loader.get_template('booktest/index.html')
    # 2.定義上下文
    context=RequestContext(request,{'title':'圖書列表','list':range(10)})
    # 3.渲染模板
    return HttpResponse(template.render(context))

打開瀏覽器刷新頁面,顯示效果如下圖

創建和調用模板

視圖調用模板簡寫

視圖調用模板都要執行以上三部分,于是Django提供了一個函數render封裝了以上代碼
方法render包含3個參數
第一個參數為request對象
第二個參數為模板文件路徑
第三個參數為字典,表示向模板中傳遞的上下文數據打開booktst/views.py文件,調用render的代碼如下

#coding:utf-8

from django.shortcuts import render

def index(request):
    context={'title':'圖書列表','list':range(10)}
    return render(request,'booktest/index.html',context)






猜你喜歡:

Django的開發理:Django框架哲學

Django路由配置方法和注意問題詳解

Django MTV架構指的是什么?

django單元測試:如何執行單元測試?

傳智教育web前端與移動開發課程

红豆直播app靠谱吗_红豆直播app下_红豆直播app下载破解