Django模板——模板标签

it-sunshine 2019-03-13 原文

Django模板——模板标签

Django模板——模板标签 1

1.简介

1.1用途

​ 解决硬编码问题,提高灵活性,方便项目管理。

1.2语法

标签语法: 由{%和 %} 来定义的,例如:{%tag%} {%endtag%}

1.3常见标签

常用模板标签

2.标签详解

2.1 if/else 标签

{% if condition1 %}
   ... display 1
{% elif condition2 %}
   ... display 2
{% else %}
   ... display 3
{% endif %}
<!--
根据条件判断是否输出。if/else 支持嵌套。
接受 and , or 或者 not 等关键字来对多个变量做判断
-->

2.2 for 标签

<!--
{% for %} 允许我们在一个序列上迭代。
与Python的 for 语句的情形类似,循环语法是 for item in iterator。
每一次循环中,模板系统会渲染在 {% for %} 和 {% endfor %} 之间的所有内容。
-->
<ul>
{% for item in iterator %}
    <li>{{ item.name }}</li>
{% endfor %}
</ul>

<!--
给标签增加一个 reversed 使得该列表被反向迭代:
-->
{% for item in iterator reversed %}
...
{% endfor %}

<!--
可以嵌套使用 {% for %} 标签:
-->
{% for item in iterator %}
    <h1>{{ item.name }}</h1>
    <ul>
    {% for stu in item.students %}
        <li>{{ stu }}</li>
    {% endfor %}
    </ul>
{% endfor %}

2.3 ifequal/ifnotequal 标签

<!--
{% ifequal %} 标签比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中所有的值。
-->
{% ifequal gender 1 %}
    <h1>Welcome to my vilage, girl!</h1>
{% endifequal %}

<!--
 {% ifequal %} 支持可选的 {% else%} 标签
-->
{% ifequal name 'danny' %}
    <h1>hello danny</h1>
{% else %}
    <h1>hello LiMing</h1>
{% endifequal %}

2.4 include 标签

<!--
{% include %} 标签允许在模板中包含其它的模板的内容.
-->
{% include "hello.html" %}

2.5 url标签

  • urls.py

    #book/urls   book是App名称
    app_name = 'book'
    urlpatterns = [
        #标签通过路由表中name参数值,重定向到模板文件。
        path('hello/', views.hello, name='hello'),
        path('index/<stu_id>/', views.index, name='index')
    ]
  • views.py

    #book/views  book是App名称
    def hello(request):
        return render(request, 'hello.html')
    
    #index方法需要捕获参数
    def index(request, sti_id):
        return render(request, 'index.html')
  • xxx.html

     <!--格式:{% url '模板文件' %}-->
    <li><a href="{% url 'book:hello' %}">welcome</a></li>
    
    <!--如需追加参数文件名后使用:空格 + 实参即可,即:变量名[空格+parm1][空格+parm2...]-->
    <li><a href="{% url 'book:index' 12 %}">index</a></li>

2.6 with 标签

<!--
重命名标签,类似python中:with...as...
取student.name=danny
-->
{% with student.name as sname %} {# 将student.name重命名为sname #}
    学生姓名为:{{ sname }}
{% endwith %}

学生姓名为:danny

2.7 注释标签

注释标签实例图

2.8 autoescape标签

<!--
转义标签,
取html="<b>东强出品,必属精品</b>"
-->
原始:{{ html }} <br/ >
过滤器:{{ html|safe }}<br/ >
标签:
{% autoescape off %}<br/ >
    {{ html }}
{% endautoescape %}

原始:<b>东强出品,必属精品
过滤器:东强出品,必属精品
标签:东强出品,必属精品


  1. 东强出品,必属精品!

发表于 2019-03-13 22:07 腾云御风 阅读() 评论() 编辑 收藏

 

版权声明:本文为it-sunshine原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/it-sunshine/p/10526990.html

Django模板——模板标签的更多相关文章

  1. django-rest-framework的认证流程源码简单解析

    django-rest-framework的认证流程源码简单解析   在编写购物车功能时需要实现未登录状态下的 […]...

  2. django 设置时区和中文 – 信奉上帝的小和尚

    django 设置时区和中文 # 设置中文 LANGUAGE_CODE = \'zh-Hans\' # 设置时 […]...

  3. IronFort—基于Django和Websocket的堡垒机

    WebSSH有很多,基于Django的Web服务也有很多,使用Paramiko在Python中进行SSH访问的 […]...

  4. DRF Django REST framework 之 视图组件(四)

    引言 在我们有几十上百的视图类,都有get,post等方法,在功能类似时,会导致大量的重复代码出现,显然还有很 […]...

  5. django

    创建项目:django-admin startproject 项目名 创建app: python manage […]...

  6. 解决-Django使用filter过滤时间,无法获取月份的问题

    django中的filter日期查询属性有:year、month、day、week_day、hour、minu […]...

  7. python工业互联网应用实战11—客户端UI

    python工业互联网应用实战11—客户端UI 这个章节我们将演示用户端界面的开发,当前演示界面还是采用先实现 […]...

  8. 三、模型(一)

    三、模型(一) 当我们的程序涉及到数据库相关操作时,我们一般都会这么做: 创建数据库,设计表结构和字段 使用 […]...

随机推荐

  1. 关于memset赋值问题

    学习借鉴自:https://blog.csdn.net/yexiaohhjk/article/details/ […]...

  2. 【104】公司 or 事业单位

    【104】公司 or 事业单位 yy贼拽|五级 进事业 ~!企业发展确实稳定 但是等你到了年龄 企业就不想要你 […]...

  3. 国产OS 中标麒麟下 C# 桌面应用开发环境搭建笔记

    1.中标麒麟 7.0 x86 桌面版  默认安装创建用户时,如果没勾选 root 用户使用相同的口令,那么安装 […]...

  4. idea配置LeetCode插件

    IDEA整合LeetCode插件,可以在 IDEA 本地编辑代码并且运行提交,还能关联自己的账号,非常实用。 […]...

  5. (2)MongoDB副本集自动故障转移原理

    前文我们搭建MongoDB三成员副本集,了解集群基本特性,今天我们围绕下图聊一聊背后的细节。 默认搭建的rep […]...

  6. 当你孤单你会想起谁之-程序员必备解压工具

    明明什么坏事情都没有发生,但就是高兴不起来… 这时候你或许需要这篇文章 当你孤单你会想起谁 当你孤 […]...

  7. xShell终端下中文乱码问题

    今天,可能是因为不小心中途打断了xShell更新,结果打开xShell发现里面的中文全成了乱码。于是去网上查了 […]...

  8. Java中日期格式化YYYY-DD的坑

    Java中日期格式化YYYY-DD的坑 2020-01-05 19:27  兔子托尼啊  阅读(… […]...

展开目录

目录导航