中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django框架模板語言的示例分析

發布時間:2021-07-19 10:10:46 來源:億速云 閱讀:155 作者:小新 欄目:開發技術

這篇文章主要介紹了Django框架模板語言的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體如下:

模板語言

模板語言簡稱為DTL(Django Template Language)

模板變量

模板變量名由數字,字母,下劃線和點組成,不能以下劃線開頭。
使用:{{模板變量名}}

def index2(request):
  '''模板加載順序'''
  return render(request, 'booktest/index2.html')
# /temp_var
def temp_var(request):
  '''模板變量'''
  my_dict = {'title': '字典鍵值'}
  my_list = [1, 2, 3]
  book = BookInfo.objects.get(id=1)
  #定義模板上下文
  context={'my_dict':my_dict,'my_list':my_list,'book':book}
  return render(request,'booktest/temp_var.html',context)

模板變量可以是字典,列表或者對象。定義好模板上下文之后,用render()函數傳遞給html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>模板變量</title>
</head>
<body>
使用字典屬性:{{ my_dict.title }}
使用列表元素:{{ my_list.1 }}
使用對象屬性:{{ book.btitle }}
</body>
</html>

可以看到模板變量都是通過 . 調用的。

模板標簽

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>模板標簽</title>
  <style>
    .red{
      background-color: red;
    }
    .yellow{
      background-color: yellow;
    }
    .green{
      background-color: green;
    }
  </style>
</head>
<body>
<ul>
  {% for book in books %}
    {% if book.id <= 2 %}
    <li class="red">{{ forloop.counter }}--{{ book.btitle }}</li>
    {% elif book.id >= 5 %}
      <li class="yellow">{{ forloop.counter }}--{{ book.btitle }}</li>
    {% else %}
      <li class="green">{{ forloop.counter }}--{{ book.btitle }}</li>
    {% endif %}
  {% endfor %}
</ul>
</body>
</html>

具體的其他的模板標簽可以參考Django官方文檔。

過濾器

過濾器用于對模板變量進行操作

date:改變日期的顯示格式
length:求長度,字符串,列表,元祖,字典
default:設置模板變量的默認值

格式:模板變量 | 過濾器:參數

date過濾器

<li class="red">{{ book.btitle }}--{book.bpub_date | date:'Y年-m月-d日'}</li>

default過濾器 {{dd | default:'無'}}

模板注釋

單行注釋:{# 注釋 #}

多行注釋:{% comment %}

模板繼承

不同頁面可能有相同的模塊,這時候可以使用模板繼承減少代碼量

base.html內容

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>父模板</title>
</head>
<body>
<h2>導航條</h2>
{% block b1 %}
  <h2>這是父模板b1塊中的內容</h2>
{% endblock b1 %}
<h2>版權信息</h2>
</body>
</html>

child.html內容

{% extends 'booktest/base.html' %}
{% block b1 %}
  {{ block.super }}
  <h2>這是子模板b1的內容</h2>
{% endblock b1 %}

在父模板中{% block b1 %} <h2>這是父模板b1塊中的內容</h2> {% endblock b1 %}
定義一個預留快,預留塊中可以有內容。子模板繼承時,{% extends 'booktest/base.html' %}導入,{% block b1 %} {{ block.super }} <h2>這是子模板b1的內容</h2> {% endblock b1 %}寫預留塊,{{ block.super }}繼承預留快的內容。

html轉義

通過render()函數傳遞過來的模板上下文默認是轉義的,也就是說我們想傳遞html語言的時候,實際上傳遞過來的是字符串,這個時候我們可以通過過濾器關閉轉義

{{context | safe}}

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Django框架模板語言的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

竹山县| 金乡县| 连平县| 鞍山市| 伊金霍洛旗| 宿迁市| 鹿邑县| 巴青县| 海安县| 仲巴县| 通化市| 常宁市| 林芝县| 尉犁县| 湖州市| 什邡市| 察雅县| 米泉市| 若羌县| 元谋县| 隆安县| 当阳市| 乐安县| 盘锦市| 赞皇县| 定结县| 台州市| 安福县| 寿阳县| 绥德县| 凤山县| 海淀区| 宜良县| 富锦市| 文水县| 广水市| 洛川县| 阳原县| 英山县| 华阴市| 甘德县|