django模板系統(下)

主要內容:母版,繼承母版,塊,組件,靜態文件

母版

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Title</title>{% block page-css %}{% endblock %}
</head>
<body><h1>這是母板的標題</h1>{% block page-main %}{% endblock %}
<h1>母板底部內容</h1>
{% block page-js %}{% endblock %}
</body>
</html>

注意:我們通常會在母版中定義頁面專用的CSS塊和JS塊,方便子頁面替換

?

繼承母版

在子頁面中在頁面最上方使用下面的語法來繼承母版

{% extends 'layouts.html' %}

?

塊(block)

通過在模板中使用{% block xxx %} 來定義“塊”。

在子頁面中通過定義母版中的block名來對應替換母版中相應的內容。

{% block page-main %}<p>花褪殘紅青杏小</p><p>燕子飛時</p><p>綠水人家繞</p><p>枝上柳綿吹又少</p><p>天涯何處無芳草</p>
{% endblock %}

?

組件

可以將常用的頁面內容如導航條,頁尾信息等組件保存在單獨的文件中,然后在需要使用的地方按如下語法導入即可。

{% include 'navbar.html' %}

?

靜態文件相關

{% load static %}
<img src="{% static "images/hi.jpg" %}" alt="Hi!" />

引用JS文件時使用:

{% load static %}
<script src="{% static "mytest.js" %}"></script>

某個文件多出被用到可以存為一個變量

{% load static %}
{% static "images/hi.jpg" as myphoto %}
<img src="{{ myphoto }}"></img>

?

使用get_static_profix

{% 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!" />
<img src="{{ STATIC_PREFIX }}images/hi2.jpg" alt="Hello!" />

自定義simpletag

和自定義filter類似,只不過接受更靈活的參數。

定義注冊simple tag

@register.simple_tag(name="plus")
def plus(a, b, c):return "{} + {} + {}".format(a, b, c)

使用自定義simple tag?

{% load app01_demo %}{# simple tag #}
{% plus "1" "2" "abc" %}

?

inclusion_tag

多用于返回HTML代碼片段

示例:

templatetages/my_inclusion.py

from django import templateregister = template.Library()@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}

templates/result.html

<ul>{% for choice in data %}<li>{{ choice }}</li>{% endfor %}
</ul>

templates/index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>inclusion_tag test</title>
</head>
<body>{% load my_inclusion %}{% show_results 10 %}
</body>
</html>

?

轉載于:https://www.cnblogs.com/ALADL/p/9767423.html

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

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

相關文章

狗窩里的小日子 ...

來&#xff0c;把平時作的菜菜整理下下&#xff1a; 1. 2. 3. 4. 5. 6. 7. 8.

面試開發人員的有效方法

伯樂在線 寫道 "Alan Skorkin是一名軟件開發人員&#xff0c;這是他分享的另一篇有關面試和開發人員的文章(中文)。Skorkin 認為&#xff0c;“當要雇傭開發者時&#xff0c;傳統的面試方法顯得力不從心&#xff0c;這是必須要面對的現實。為什么不行&#xff1f;原因也許…

Android直接用手機打包apk!

你沒有看錯&#xff0c;用手機瀏覽器訪問Jenkins&#xff0c;就可以打包apk&#xff0c;并生成下載二維碼&#xff0c;發送郵件通知測試人員下載&#xff0c;從此解放雙手&#xff0c;告別打包測試。先上本人手機郵箱收到的打包成功通知效果圖&#xff1a; 廢話少說&#xff0c…

java中byte、short、char、boolean實際都是按照int處理的!

byte、char、short、boolean四種類型在匯編期或運行期間采取和int類型一樣的存儲方式&#xff0c;在計算時會先轉換為int類型&#xff0c;后進行計算。所以兩個short類型數據做算數運算&#xff0c;結果卻為int類型。這主要是因為jvm的字節碼為了簡潔高效&#xff0c;設計時只使…

4、2 核心組件

1、Stage&#xff1a;虛的  一組RDD構成的鏈條并行的task集合&#xff0c;同一Stage的所有任務有著相同的Shuffle依賴。階段的劃分按照shuffle標記來進行的。一個階段含多個RDD&#xff0c;先有RDD后有Stage一個階段含多個taskstage通過ShuffleDependency劃分&#xff0c;一個…

狗窩里的小日子- 2 ...

來&#xff0c;把平時作的菜菜整理下&#xff1a; 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.

優秀程序員必備素質——快速調試

你是否有過這些經歷&#xff1a; 1.代碼敲完了&#xff0c;剛想松口氣&#xff0c;一運行程序&#xff0c;滿滿的Bug。 2.找啊找啊找&#xff0c;怎么找都找不到哪里出了問題。 3.調試了半天出不來&#xff0c;就開始便得心煩氣躁。 4.一天連一個Bug也沒調出來&#xff0c;…

Java程序編譯運行過程

整體流程 1.首先由源程序文件編譯成class文件。注意這里的源程序并不僅限于java程序&#xff0c;其他語言如果能夠編譯成class文件&#xff0c;并且符合jvm規范也能夠在jvm上運行。 2.jvm將class文件拷貝到內存&#xff0c;解釋成相應的機器語言運行。我們常用的hotspot虛擬機…

【TeeChart .NET教程】(七)使用函數

2019獨角獸企業重金招聘Python工程師標準>>> 上一篇&#xff1a;【TeeChart .NET教程】&#xff08;六&#xff09;使用系列 【下載TeeChart.Net最新版本】 &#xff08;一&#xff09;功能類型 1.1 功能類型 TeeChart Pro功能是一個系列&#xff0c;幾乎可以是任何…

Django的簡介

一.MTV模型 Django的MTV模式: Model(模型):和數據庫相關的.負責業務對象與數據庫的對象(ORM) Template(,模板):放所有的HTML文件 模板語法:目的是將變量(數據庫內容)如何巧妙的鑲嵌到HTML頁面中 View(視圖):負責業務邏輯,并在適當的時候調用Model和Template 此外Django還有一個…

狗窩里的小日子- 3 ...

來&#xff0c;把平時作的菜菜整理下&#xff1a; 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.

5種流行的Linux發行版:你更喜歡哪一個呢?

現如今&#xff0c;對于各種類型的用戶&#xff08;如桌面用戶、服務器管理員、圖形設計者等&#xff09;而言Linux已經成為一種最流行的操作系統。Linux是免費且開源的&#xff0c;任何人都可以建立和編譯它的源代碼&#xff0c;并將它分發給別人。這就是為什么Linux會有很多個…

購物商城Web開發第二十三天

今天完成了結算頁的第二個頁面的編寫&#xff0c;買東西的完整流程已完成了頁面的部分 后面還差頁面的JS部分和后臺。 今天沒有遇到什么大的困難&#xff0c;有一個問題是CSS的float屬性的運用還是不夠好&#xff0c;今 天也意識到了一些會產生的問題&#xff0c;以后還需要多注…

java裝箱拆箱

所謂的拆箱裝箱&#xff0c;其實就是一個簡單的語法糖。我們以Integer為?。 &#xff08;一&#xff09;裝箱 Integer i 1&#xff1b; 本質上就是&#xff1a; Integer i Integer.valueOf(1); &#xff08;二&#xff09;拆箱 int m i&#xff1b; 本質上就是&…

基于ASP.net耳機網店商城系統(前臺頁面+后臺頁面)

源碼https://github.com/doublekai/user web文件夾 轉載于:https://www.cnblogs.com/doublekai/p/9778246.html

狗窩里的小日子- 4 ...

來&#xff0c;把平時作的菜菜整理下&#xff1a; 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.

硅谷觀察者眼中的亞洲

摘要&#xff1a;而印度團隊因為語言優勢&#xff0c;更多直接涉足在硅谷和全球的創業項目競爭中。去年&#xff0c;她花了大部分時間游歷了日本、韓國、中國、印度、新加坡和越南等國家&#xff0c;走訪了數百位亞洲的創業者和風險投資商。 即便是如此現場豐富且高度碎片化的亞…

[Web 前端] 解決因inline-block元素導致的空白間距和元素下沉

cp from : https://www.jianshu.com/p/617e78a27c88 ** 前言&#xff1a; ** CSS 中的 display:inline-block 是筆者最為喜歡的元素之一&#xff0c;可以將原本占據一行的塊級元素&#xff0c;轉變為可以并列顯示的行內塊級元素。 display:inline-block 常被用來代替float進行頁…

我的第一個隨筆

自我介紹 Hello&#xff01;大家好破音&#xff0c;我叫單嘉隆&#xff0c;來自地理信息162&#xff0c;興趣愛好有 看電影&#xff08;豆瓣已刷完&#xff0c;正在看imdb&#xff09;怪物獵人世界&#xff01;偶爾看看書 個人編程能力&#xff1a; 以前看網課大概寫了100來行p…

java8中LocalDate、LocalTime、LocalDateTime介紹

很久以前java8中就推出了新的Time API&#xff0c;旨在解決舊版Date和Calendar的缺陷。講道理真的挺好用的&#xff0c;不過由其他工具對新版time的兼容并不夠完善&#xff0c;導致現在使用還不夠普及。大家都還在用老的Date類&#xff0c;苦?的封裝時間工具函數&#xff0c;感…