19 01 17 Django 模板 返回一個頁面


模板

問題

如何向請求者返回一個漂亮的頁面呢?

肯定需要用到html、css,如果想要更炫的效果還要加入js,問題來了,這么一堆字段串全都寫到視圖中,作為HttpResponse()的參數嗎?這樣定義就太麻煩了吧,因為定義字符串是不會出任何效果和錯誤的,如果有一個專門定義前端頁面的地方就好了。

解決問題的技術來了:模板。

在Django中,將前端的內容定義在模板中,然后再把模板交給視圖調用,各種漂亮、炫酷的效果就出現了。

創建模板

為應用booktest下的視圖index創建模板index.html

設置查找模板的路徑:打開test1/settings.py文件,設置TEMPLATES的DIRS值

 

定義模板

打開templtes/booktest/index.html文件,定義代碼如下:

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

在模板中輸出變量語法如下,變量可能是從視圖中傳遞過來的,也可能是在模板中定義的。

{{變量名}}

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

{%代碼段%}




 

 

視圖調用模板簡寫

視圖調用模板都要執行以上三部分,於是Django提供了一個函數render封裝了以上代碼。 方法render包含3個參數:

  • 第一個參數為request對象
  • 第二個參數為模板文件路徑
  • 第三個參數為字典,表示向模板中傳遞的上下文數據

打開booktst/views.py文件,調用render的代碼如下:

from django.shortcuts import render

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM