首页 > 其他分享 >Django模板语法

Django模板语法

时间:2022-08-30 11:25:35浏览次数:65  
标签:标签 Django 语法 endfor 过滤器 foo 模板

一、Python的模板:HTML代码 + 模板语法

二、模板语法需掌握以下几个用法

  1. 传值
  2. 过滤器
  3. 标签
  4. 继承
  5. 导入模板

三、简要介绍

1. 模板语法之传值

{{ }} # 一般给变量使用相关
{% %} # 一般跟逻辑相关的
模板中使用函数,类,调用方法等,都不要加括号 查询、引用对象方法等,一律使用点语法(句点符)

2. 模板语法之过滤器

# 相当于python的内置函数
语法:
{{ 变量|过滤器:参数 }}
'''
竖杠左边的变量当成过滤器的第一个参数,冒号后面的当成第二个参数;
如果冒号后面没有参数了,那就是只有一个参数;
过滤器最多传递两个参数。
'''

# 过滤器有很多个,大概有六七十个,我们需要掌握四五个就行
1. length:返回值的长度。它对字符串和列表都起作用。{{ value|length }}
2. default:如果一个变量是false或者为空,使用给定的默认值。否则,使用变量的值。{{ value|default:"nothing"}}
3. date:格式化时间。{{ ctime| date:'Y-m-d H-i-s' }} 
4. filesizeformat: 将值格式化为一个可读的文件大小。{{ value|filesizeformat }}
5. safe:取消转义。{{ value|safe}}

'''
Django的模板中会对HTML标签和JS等语法标签进行自动转义,是保护HTML标签的源文件。
和安全相关的:
1. MySQL中会出现SQL注入的问题
2. 前端中会出现xss攻击
3. django中的form表单中会出现csrf跨站请求问题
'''

'''xss攻击:不让外部的标签直接生效'''
# 前端的代码有时候也可以在后端写好,然后传递到前端使用。
from django.utils.safestring import mark_safe
s = mark_safe('<h1>xss攻击</h1>')

3. 标签

# 在html中可以使用 if else for循环等
# for 标签
{% for foo in l %}
    {{ forloop }}
    <p>
        {{ foo }}
    </p>
{% endfor %}

# if 标签 {% for foo in l %} {% if forloop.first %} <p> 第一个 </p> {% elif forloop.last %} <p> 最后一个 </p> {% else %} <p> {{ foo }} </p> {% endif %} {% endfor %}
# for循环遍历字典 {% for foo in d.keys %} <p> {{ foo }} </p> {% endfor %} {% for foo in d.values %} <p> {{ foo }} </p> {% endfor %} {% for foo in d.items %} <p> {{ foo }} </p> {% endfor %}

4. 继承

Django模版引擎中最强大也是最复杂的部分就是模版继承。

首先,在父模板中搭建基础模板,并且定义能够被子模版覆盖的 blocks 。blocks标签中的内容,代表这能被子模板覆盖。

其次,在子模板中,使用extends标签,继承父模板。同时,使用block标签重写需要替换的内容。

{% extends 'home.html' %}

{% block content %}
    <h1>登录页面</h1>
    <form action="">
        <p>username: <input type="text" class="form-control"></p>
        <p>password: <input type="text" class="form-control"></p>
        <input type="submit" class="btn btn-success btn-block">
    </form>
{% endblock %}

5.  导入模板

语法:{% include '模版名称' %}

如:{% include 'index.html' %}

标签:标签,Django,语法,endfor,过滤器,foo,模板
From: https://www.cnblogs.com/tully/p/16638614.html

相关文章

  • B/S端界面控件DevExtreme JavaScript—全新的UI模板库 (v22.2)
    DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能......
  • Java基本语法
    Java基本语法注释、标识符、关键字注释单行注释多行注释文档注释数据类型变量、常量运算符包机制、JavaDoc......
  • 推荐 10 套个人觉得还不错的网页模板
    原文链接 推荐10套个人觉得还不错的网页模板这里推荐10套从风格,配色,响应式等几方面个人觉得还不错的网页模板,假以时日用来做企业站,还是某种品牌的官网也好,觉得可......
  • Java入门-基础语法(数据类型)
    数据类型:强类型语言要求变量的使用严格符合规定,所有的变量都必须先定义后才能使用,是最基本的存储单元,其要素包括变量名、变量类型和作用域,安全性高,速度相对较慢。typevar......
  • 2-1 django-员工管理系统
    1.视频【2-1、3-1、4-1、5-13】https://www.bilibili.com/video/BV1S44y1K7Hd?p=182.笔记1.创建1.1创建项目      1.2创建apppythonmanage.pystar......
  • Python爬虫-Xpath语法与lxml库的用法(二)
    一、安装pip方式安装pipinstalllxml二、Xpath术语2.1节点在XPath中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML文档......
  • 基于django原生代码提供api接口
    创建了表单student:fromdjango.dbimportmodelsclassStudent(models.Model):#学生信息name=models.CharField(max_length=255,verbose_name="姓名"......
  • 如何将本地化添加到 Django REST 框架
    如何将本地化添加到DjangoREST框架Django在本文中,我将为您提供有关如何使用I18N和DjangoRestFramework本地化DjangoRestAPI的指南。在开始本教程之前,我将......
  • 变参模板改进单例模式
    单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点泛型单例模式需要变参构造函数,构造函数的参数个数需要支持变化下面是不用变参模板,支持0~6个参数的单例模式......
  • Java 基础语法
    Java关键字下面列出了Java关键字。这些保留字不能用于常量、变量、和任何标识符的名称。类别关键字说明访问控制private私有的protected受保护的public......