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 配置mysql 数据库

    在centos 7 下安装mysql 安装 wget http://dev.mysql.com/get/mys […]...

  2. 一、初识 Django

    一、引子 Django最初设计用于具有快速开发需求的新闻类站点,目的是要实现简单快捷的网站开发! 从好的方面来 […]...

  3. Django 创建web项目之HelloWorld

    Django、Flask、Tornado并称为python WEB三大框架。Diango是一个开源的web应用 […]...

  4. 字段的参数 — Django从入门到精通系列教程

    该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www […]...

  5. django的信号应用

    问题?   比如说我们在操作数据库的时候,要在插入数据之前写入日志,插入完成之后也写入日志,那这个就会用到我们 […]...

  6. Django之auth模块(用户认证)

    auth模块简介 auth模块是对登录认证方法的一种封装,之前我们获取用户输入的用户名及密码后需要自己从use […]...

  7. Django – 中间件

    Django – 中间件 一. 什么是中间件   官方: 中间件是一个用来处理Django的请求和 […]...

  8. Django之中间件

    中间件简介 什么是中间件 中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的 […]...

随机推荐

  1. jQuery系列:选择器

      jQuery选择器通过标签名、属性名或内容对DOM元素进行选择,而不用担心浏览器的兼容性。 1. 基本选择 […]...

  2. Java程序员完美设置,Mac编程指南

        重装了不知道多少次Windows,Linux发行版换来换去总是觉得不满意,终于下定决心在年头买了人生中 […]...

  3. mysql搭建主从复制(一主一从,双主双从)

    主从复制原理 Mysql 中有一个binlog 二进制日志,这个日志会记录下所有修改了的SQL 语句,从服务器 […]...

  4. Idea简单SpringMVC框架配置

    前边已经介绍过了Struts在Idea上的配置,相对于Struts来说,我觉得SpringMVC有更多的优势, […]...

  5. github for windows 桌面版使用方法

    github for windows 桌面版使用方法   首先得去下载github for windows,搜 […]...

  6. UI自动化学习笔记- UnitTest单元测试框架详解

    一、UnitTest基本使用 1. UnitTest框架 1.1 什么是框架 说明: 框架英文单词frame […]...

  7. 【2016】七月份英语学习总结

    TGB英语学习也有快三年的时间了。一开始的时候是因为看到了榜样才走上了自己的英语学习之路。还记得一开始在三合班 […]...

  8. python 装饰器

    一、我们在python语言中 常用@classmethod、@staticmethod这个装饰器,装饰器的作用简单来讲就是我们在很多地方可能都会用到一下相同的功能,这时我们会有两种想法。1. 将这部分相同的功能封装成函数,然后在使用这个...

展开目录

目录导航