python Tags 母板 組件 靜態文件相關 自定義simpletag inclusion_tag

一.Tags
(一)for
1.基本用法
<ul>
{% for user in user_list %}
<li>{{ user.name }}</li>
{% endfor %}
</ul>
2.for循環可用的一些參數
forloop.counter 當前循環的索引值(從1開始)
forloop.counter0 當前循環的索引值(從0開始)
forloop.revcounter 當前循環的倒序索引值(從1開始)
forloop.revcounter0 當前循環的倒序索引值(從0開始)
forloop.first 當前循環是不是第一次循環(布爾值)
forloop.last 當前循環是不是最后一次循環(布爾值)
forloop.parentloop 本層循環的外層循環
(二)for...empty
<ul>
{% for user in user_list %}
<li>{{ user.name }}</li>
{% empty %}
<li>空空如也</li>
{% endfor %}
</ul>

(三)if elif 和else
{% if user_list %}
用戶人數:{{ user_list|length }}
{% elif black_list %}
黑名單數:{{ black_list|length }}
{% else %}
沒有用戶
{% endif %}
(四)if ...else
{% if user_list|length > 5 %}
七座豪華SUV
{% else %}
黃包車
{% endif %}
if語句支持 and 、or、==、>、<、!=、<=、>=、in、not in、is、is not判斷。
(五)with
定義一個中間變量
{% with p_list.0.name as chenrun %}
{{chenrun}}
(六)csrf_token
這個標簽用于跨站請求偽造保護。
在頁面的form表單里面寫上{% csrf_token %}
(七)注意事項
1. Django的模板語言不支持連續判斷,即不支持以下寫法:
{% if a > b > c %}
...
{% endif %}
可以寫成 a>b and b>c
2. Django的模板語言中屬性的優先級大于方法
def xx(request):
d = {"a": 1, "b": 2, "c": 3, "items": "100"}
return render(request, "xx.html", {"data": d})
如上,我們在使用render方法渲染一個頁面的時候,傳的字典d有一個key是items并且還有默認的 d.items() 方法,
此時在模板語言中: {{ data.items }} 默認會取d的items key的值。
二.母板
我們通常會在母板中定義頁面專用的CSS塊和JS塊,方便子頁面替換
(一).繼承母板
在子頁面中在頁面最上方使用下面的語法來繼承母板。
語法: {% extends 'layouts.html' %}
(二)塊(block)
通過在母板中使用{% block xxx %}來定義"塊"。
{% block page_panel %}
<h3 class="panel-title">出版社列表</h3>
{% endblock %}
在子頁面中通過定義母板中的block名來對應替換母板中相應的內容
{% block page_panel %}
<h3 class="panel-title">書名列表</h3>
{% endblock %}
三.組件
可以將常用的頁面內容如導航條,頁尾信息等組件保存在單獨的文件中,然后在需要使用的地方按如下語法導入即可。
{% include 'navbar.html' %}
四.靜態文件相關
(一)第一種方式static
1.導入
{% load static %}
2.使用
<script src="{% static "mytest.js" %}"></script>
注意:某個文件多處被用到可以存為一個變量
{% load static %}
{% static "images/hi.jpg" as myphoto %}
<img src="{{ myphoto }}"></img>
(二)第二種方式 get_static_prefix
{% load static %}
<img src="{% get_static_prefix %}images/hi.jpg" alt="Hi!" />
或者:
{% load static %}
{% get_static_prefix as STATIC_PREFIX %}
<img src="{{ STATIC_PREFIX }}images/hi.jpg" alt="Hi!" />
五.自定義simpletag
類似于自定義filter,只不過接收更靈活的參數
1.在app下創建templatetags
2.在templatetags下創建mydefination.py
3.注冊 simple tag
@register.simple_tag(name="plus")
def plus(a, b, c):
return "{} + {} + {}".format(a, b, c)
4.使用自定義simple tag
{% load mydefination %}
{% plus "1" "2" "abc" %}
六.inclusion_tag
多用于返回html代碼片段
1.在app下創建templatetags
2.在templatetags下創建mydefination.py
3.templatetags注冊 inclusion_tag
@register.inclusion_tag('result.html')
def show_results(n):
n = 1 if n < 1 else int(n)
data = ["第{}項".format(i) for i in range(1, n+1)]
return {"data": data}
4.templates/result.html
<ul>
{% for choice in data %}
<li>{{ choice }}</li>
{% endfor %}
</ul>
5.templates/index.html
<body>
{% load my_inclusion %}

{% show_results 10 %}
</body>

轉載于:https://www.cnblogs.com/J-7-H-2-F-7/p/9630643.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389706.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389706.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389706.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

el表達式取值優先級

不同容器中存在同名值時&#xff0c;從作用范圍小到大的順序依次嘗試取值&#xff1a;pageContext->request->session->application 轉載于:https://www.cnblogs.com/wrencai/p/9006880.html

數據探索性分析_探索性數據分析

數據探索性分析When we hear about Data science or Analytics , the first thing that comes to our mind is Modelling , Tuning etc. . But one of the most important and primary steps before all of these is Exploratory Data Analysis or EDA.當我們聽到有關數據科學或…

5930. 兩棟顏色不同且距離最遠的房子

5930. 兩棟顏色不同且距離最遠的房子 街上有 n 棟房子整齊地排成一列&#xff0c;每棟房子都粉刷上了漂亮的顏色。給你一個下標從 0 開始且長度為 n 的整數數組 colors &#xff0c;其中 colors[i] 表示第 i 棟房子的顏色。 返回 兩棟 顏色 不同 房子之間的 最大 距離。 第 …

一起了解原型模式

原型模式 原型模式&#xff0c;用起來其實就是做clone操作&#xff0c;clone一個對象&#xff0c;越過構造器&#xff0c;在特定使用場景下增加效率。 UML 使用場景&#xff1a; 類初始化需要消耗很多資源&#xff0c;比較耗時。new方式非常繁瑣&#xff0c;還涉及到權限之類的…

c++與c語言的區別部分

1.new <malloc> delete <free> 2.多態&#xff1a; 重載 <函數 操作符> 類似于c中的變化參數 虛函數3.模板 4.class類<面向對象> 繼承 5.名空間 &#xff08;防止數據沖突問題 &#xff0c; 數據安全&#xff09; 6.引用 &a…

stata中心化處理_帶有stata第2部分自定義配色方案的covid 19可視化

stata中心化處理This guide will cover an important, yet, under-explored part of Stata: the use of custom color schemes. In summary, we will learn how to go from this graph:本指南將涵蓋Stata的一個重要但尚未充分研究的部分&#xff1a;自定義配色方案的使用。 總而…

5201. 給植物澆水

5201. 給植物澆水 你打算用一個水罐給花園里的 n 株植物澆水。植物排成一行&#xff0c;從左到右進行標記&#xff0c;編號從 0 到 n - 1 。其中&#xff0c;第 i 株植物的位置是 x i 。x -1 處有一條河&#xff0c;你可以在那里重新灌滿你的水罐。 每一株植物都需要澆特定…

Anaconda配置和使用

為什么80%的碼農都做不了架構師&#xff1f;>>> 原來一直使用原生python和pip的方式&#xff0c;換了新電腦&#xff0c;準備折騰下Anaconda。 安裝過程就不說了&#xff0c;全程可視化安裝&#xff0c;很簡單。 安裝后用“管理員權限”打開“Anaconda Prompt”命令…

qml: C++調用qml函數

C調用qml函數&#xff0c;是通過下面的函數實現的&#xff1a; bool QMetaObject::invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, QGenericReturnArgument ret, QGenericArgument val0 QGenericArgument( Q_NULLPTR ), QGenericArgument val1 QG…

python 插補數據_python 2020中缺少數據插補技術的快速指南

python 插補數據Most machine learning algorithms expect complete and clean noise-free datasets, unfortunately, real-world datasets are messy and have multiples missing cells, in such cases handling missing data becomes quite complex.大多數機器學習算法期望完…

5186. 區間內查詢數字的頻率

5186. 區間內查詢數字的頻率 請你設計一個數據結構&#xff0c;它能求出給定子數組內一個給定值的 頻率 。 子數組中一個值的 頻率 指的是這個子數組中這個值的出現次數。 請你實現 RangeFreqQuery 類&#xff1a; RangeFreqQuery(int[] arr) 用下標從 0 開始的整數數組 ar…

NIO 學習筆記

0. 介紹 參考 關于Java IO與NIO知識都在這里 &#xff0c;在其基礎上進行修改與補充。 1. NIO介紹 1.1 NIO 是什么 Java NIO 是 java 1.4, 之后新出的一套IO接口. NIO中的N可以理解為Non-blocking&#xff0c;不單純是New。 1.2 NIO的特性/NIO與IO區別 IO是面向流的&#x…

[原創]java獲取word里面的文本

需求場景 開發的web辦公系統如果需要處理大量的Word文檔&#xff08;比如有成千上萬個文檔&#xff09;&#xff0c;用戶一定提出查找包含某些關鍵字的文檔的需求&#xff0c;這就要求能夠讀取 word 中的文字內容&#xff0c;而忽略其中的文字樣式、表格、圖片等信息。 方案分析…

ab 模擬_Ab測試第二部分的直觀模擬

ab 模擬In this post, I would like to invite you to continue our intuitive exploration of A/B testing, as seen in the previous post:在本文中&#xff0c;我想邀請您繼續我們對A / B測試的直觀探索&#xff0c;如前一篇文章所示&#xff1a; Resuming what we saw, we…

1886. 判斷矩陣經輪轉后是否一致

1886. 判斷矩陣經輪轉后是否一致 給你兩個大小為 n x n 的二進制矩陣 mat 和 target 。現 以 90 度順時針輪轉 矩陣 mat 中的元素 若干次 &#xff0c;如果能夠使 mat 與 target 一致&#xff0c;返回 true &#xff1b;否則&#xff0c;返回 false 。 示例 1&#xff1a; 輸…

samba登陸密碼不正確

win7訪問Linux Samba的共享目錄提示“登錄失敗&#xff1a;用戶名或密碼錯誤”解決方法 解決辦法&#xff1a;修改本地安全策略 通過Samba服務可以實現UNIX/Linux主機與Windows主機之間的資源互訪&#xff0c;由于實驗需要&#xff0c;輕車熟路的在linux下配置了samba服務&…

Java構造函數的深入理解

我們人出生的時候&#xff0c;有些人一出生之后再起名字的&#xff0c;但是有些人一旦出生就已經起好名字的。那么我們在 java 里面怎么在對象一旦創建就賦值呢&#xff1f; public class Person {String name; // 姓名int age; // 年齡public static void main(String[]…

1967. 作為子字符串出現在單詞中的字符串數目

1967. 作為子字符串出現在單詞中的字符串數目 給你一個字符串數組 patterns 和一個字符串 word &#xff0c;統計 patterns 中有多少個字符串是 word 的子字符串。返回字符串數目。 子字符串 是字符串中的一個連續字符序列。 示例 1&#xff1a;輸入&#xff1a;patterns [&…

判斷IE版本與各瀏覽器的語句

---恢復內容開始--- 一.IE下判斷IE版本的語句 <!--[if lte IE 6]><![endif]-->IE6及其以下版本可見<!--[if lte IE 7]><![endif]-->IE7及其以下版本可見<!--[if IE 6]><![endif]-->只有IE6版本可見<![if !IE]><![endif]>除了I…

各類軟件馬斯洛需求層次分析_需求的分析層次

各類軟件馬斯洛需求層次分析When I joined Square, I was embedded on a product that had been in-market for a year but didn’t have dedicated analytics support.當我加入Square時&#xff0c;我被嵌入了已經上市一年但沒有專門的分析支持的產品。 As you might expect,…