日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于django的模板

發布時間:2023/12/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于django的模板 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模板

問題

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

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

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

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

創建模板

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

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

'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文件,調用上面定義的模板文件

from django.http import HttpResponse from django.template import loader,RequestContextdef 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的代碼如下:

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

總結

以上是生活随笔為你收集整理的关于django的模板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。