Django:模板系统_常用标签_django项目中声明动态内容的标签是-程序员宅基地

技术标签: django  Django  

模板标签

1、前面那篇文章中介绍了使用context参数进行传参,使HTML页面拥有了一定的动态效果。同时也提到了DTL模板中不仅可以有HTML标签对,还可以可以有if判断、for循环等。if、for等语句(模板标签)在HTML模板中就是以一种特殊的标签对形式存在的

2、html的数据是静态的,动态内容由框架标签负责引进。Django在html页面嵌入标签,是以{% 代码块 %}的形式,而输出内容使用{ { 变量名称 }}的形式进行接收

3、模板中"{% %}"形式的代码是Django模板语言的函数语法,Django模板函数需要结束标签。如,{%for%}循环的结束标签是{%endfor%}

 

 

标签释义

1、模板标签的本质是函数,标签名一般即为函数名。主要作用是载入代码渲染模板或对传递过来的参数进行一定的逻辑判断或计算后返回

2、模板中"{% %}"形式的代码是Django模板语言的函数语法,Django模板函数需要结束标签。如,{%for%}循环的结束标签是{%endfor%}

3、在Web框架中,标签常分为内置标签和自定义标签,在内置标签不够用的时候,才会去自定义标签(说了句废话)。Django的内置标签不是很多,好好熟悉一番

 

 

常用的模板标签

if标签

1、if标签相当于Python中的if语句,是进行条件判断用的。同样也有elif和else相对应。只是说在模板语法中所有的标签都需要使用标签符号"{%%}"进行包裹

2、使用{%if%}、{%elif%}、{%else%}、{%endif%}进行条件判定,使用方法和Python中相同:{%if%}标签可以单独使用,可以有{%else%}、{%endif%}标签,也可以没有
    ⑴在模板语言中如果有{%if%}开始标签,那么就必须要有{%endif%}结束标签:因为在Python中语句的结束是用缩进来表示的,但是在模板语法中是没有缩进的,因此代码不知道你什么时候该结束if标签,因此使用了{%endif%}来表示if标签的结束
    ⑵另,在模板语法中不管是哪个标签,都是:只要有开始标签,就必须有结束标签(url标签除外,该标签没有结束标签)

3、if中可以使用:==、!=、<=、<、>=、>、in、not in、is、is not等判断运算符。另外还可以使用and、or等关键字来表示逻辑关系

例1:一般字典

⑴编辑视图
    定义一个字典,并将其赋值给context参数

⑵编辑模板
    1、在模板中使用if标签,对context传过来的值进行判断,根据判断来确定最终显示的数据

⑶访问

例1_1:嵌套字典

⑴编辑视图

⑵编辑模板

 

例1_2:值为列表

⑴编辑视图

⑵编辑模板:这里也可以使用people.索引数对列表中的元素进行取值

注:从上面例子可以看出
1、所有的标签都在"{% %}"之间

2、在获取参数值时,获取的方式跟我们前面那篇文章介绍的方法一致:可以直接使用键名,也可以使用'.'点操作符(只是这里不需要在使用{ { }}来包裹键名了)

3、总的来说,if标签对的语法为:

    {% if 参数+条件 %}
        满足if条件时执行的语句
    {% elif 参数+条件 %}
        满足elif条件时执行的语句
    {% else %}
        满足else条件时执行的语句
    {% endif %}

 

for...in...标签

1、for...in...标签:类似于Python中的for...in...循环。可以遍历列表、元组、字符串、字典等一切可以遍历对象

2、使用{% for variable in variables %}...{% endfor%}来对字典、列表、字符串、元组等进行遍历

3、在遍历字典时需要使用item、keys、values的时候可以直接用点'.'的方式调用:执行方法的时候不能使用圆括号

4、另在for...

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zh18380113164/article/details/104938345

智能推荐

php设置html全局路径_phpcms v9 html生成路径修改教程-程序员宅基地

文章浏览阅读114次。打开caches\configs\system.php,修改html_root的值默认在51行:'html_root' => '/html',//生成静态文件路径修改为:'html_root' => '',//生成静态文件路径将html_root这项值添加到后台的基本设置中,让管理员可以随时修改html_root的这个值1.打开phpcms\modules\admin\function..._phpcmsv9网页的image路径在哪修改

捋顺Struck SVM------之--------sv选择准则前导篇_svm中sv-程序员宅基地

文章浏览阅读1.2k次。对struck SVM的理解,很关键的一点是对支持向量的选择过程的理解,最终模型的效果好不好,也取决于选择的sv是否具有代表性。 SV序号SV结构1234_svm中sv

tp5无法隐藏index.php入口文件_php入口隐藏不了怎么办-程序员宅基地

文章浏览阅读6.9k次。在本地phpstudy环境,根据官方文档https://www.kancloud.cn/manual/thinkphp5/177576进行URL重写,隐藏index.php不好用,百度方案,发现将.htaccess文件进行如下修改。官方文件:Options +FollowSymlinks -MultiviewsRewriteEngine onRewriteCond %{REQU_php入口隐藏不了怎么办

Deque,ArrayDeque,LinkedList做队列和栈_deque linkedlist 还是-程序员宅基地

文章浏览阅读844次,点赞2次,收藏6次。Deque用法及原理讲解Deque用的比较少,但是还是一个功能十分强大的队列,这种双向队列即可以支持先进后出,也能支持先进先出的格式,相当于同时实现了Stack和Vector,从上图看出,Queue以及Deque都是继承于Collection,Deque是Queue的子接口。从Deque的解释中,我们可以得知:Deque是double ended queue,我将其理解成双端结束的队列,双端队列,可以在首尾插入或删除元素。而Queue的解释中,Queue就是简单的FIFO队列。所以在概念上来_deque linkedlist 还是

I2C总线传输协议-程序员宅基地

文章浏览阅读4.9k次,点赞2次,收藏32次。一、I2C总线是一种双向的同步串行总线,它支持设备之间的短距离通信,经常用于处理器和一些外围设备之间的接口通信。I2C总线的标准通信速率是100Kbps,快速模式是400Kbps,高速模式支持3.4Mbps。I2C总线支持多设备的通信,而且各个设备之间的SCL和SDA线都是线与关系。I2C总线上扩展的器件的数量主要由电容负载来决定,其负载能力为400pF。I2C总线具有极低的电流消耗。二、I2...

什么是幻兽帕鲁Palworld?2024年如何搭建部署幻兽帕鲁Palworld游戏服务器?_palworld dedicated server-程序员宅基地

文章浏览阅读1.8k次,点赞26次,收藏20次。幻兽帕鲁Palworld是一款角色扮演动作冒险游戏,于2024年1月19日在PC、Xbox Series X和Xbox One平台上发布。在幻兽帕鲁的游戏世界中,玩家可以自由收集神奇的生物“帕鲁”,派他们进行战斗、建造、采矿,工业生产等等,享受悠闲生活,或是投身于冒险事业。这款游戏画风以3D卡通为主,玩法融合了开放世界探索、生存建造、第三人称射击、即时战斗等玩法。玩家在游戏中可以通过自由收集的帕鲁生物进行战斗,同时也可以进行建造和采矿等生产活动。_palworld dedicated server

随便推点

洛谷 多校训练第 4 轮 题解 (A-H)_洛谷中关于解方程的题目有哪些-程序员宅基地

文章浏览阅读327次。文章目录A题 T125991 God J and Ancient Tree题目大意:解题思路:问题转换解决方法时间复杂度分析什么是dsu on tree?B题C题D题 T125994 God J and Decryption题目大意解题思路A题 T125991 God J and Ancient Tree题目大意:给你一颗树,每个点都具有权值,要求你求解两条到根的链,使它们的并上点权异或值最..._洛谷中关于解方程的题目有哪些

vue尚品汇商城项目-day04【29.加入购物车操作(难点)】-程序员宅基地

文章浏览阅读1.1k次。vue尚品汇商城项目-day04【29.加入购物车操作(难点)】

JUnit5-常用注解和方法-附实战小项目_junit中表示某方法在每个测试方法运行前都会运行的注释是-程序员宅基地

文章浏览阅读536次。JUnit5常用注解注解描述@Test表示方法是一种测试方法。与 JUnit 4 的@Test 注解不同,此注释不会声明任何属性@BeforeEach表示方法在每个测试方法运行前都会运行@AfterEach表示方法在每个测试方法运行之后都会运行@BeforeAll表示方法在所有测试方法之前运行,注意使用该注解的方法必须返回 void、访问级别不允许为 private,且必须声明为静态 (static) 方法@AfterAll表示方法在所有测试方法之后运_junit中表示某方法在每个测试方法运行前都会运行的注释是

cordova + vue 项目实现极光推送功能-程序员宅基地

文章浏览阅读936次。因为我司使用cordova打包app,要实现推送功能,百度了一下只有极光官方支持。1.首先得在极光注册开发者帐号:附上极光官网连接https://www.jiguang.cn/2.创建好帐号后点进进入极光开发者服务》》创建应用3.创建好应用会生成一个AppKey(后面需要),到这里还没完,切记点击下方的完成推送设置按钮4.点击后在推送设置里填写应用包名,一定要和android项目包名一致,..._vue 项目怎么配置极光推送

大量赋值(Mass assignment)_api mass assignment-程序员宅基地

文章浏览阅读1.5k次。Mass assignemet是个Rails专属,因为太方便而造成的安全性议题。ActiveRecord物件在新建或修改时,可以直接传入一个Hash来设定属性(这功能叫做Mass assignment),所以我们可以直接将网页表单上的参数直接丢进放进去:def create # 假设表单送出 params[:user] 参数是 # {:name => “ihover”, :emai..._api mass assignment

P2345 奶牛集会-程序员宅基地

文章浏览阅读141次。题目描述约翰的N 头奶牛每年都会参加“哞哞大会”。哞哞大会是奶牛界的盛事。集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等。它们参加活动时会聚在一起,第i 头奶牛的坐标为Xi,没有两头奶牛的坐标是相同的。奶牛们的叫声很大,第i 头和第j 头奶牛交流,会发出max{Vi; Vj}×|Xi − Xj | 的音量,其中Vi 和Vj 分别是第i 头和第j 头奶牛的听力。假设每对奶牛之间同时都在说...

推荐文章

热门文章

相关标签