1. MVC 以及 MTV

    MVC:

    M : model -->> 存取数据(模型)

    V: view -->> 信息的展示(视图)

    C: controller -->> 逻辑的控制(控制器)

    MTV:

    M: model -->> ORM操作(模型)

    T: template -->> 模板(模板)

    V: view -->> 业务逻辑 (视图)

  2. 变量

    取值顺序 : 字典Key --->> 属性--->>方法--->>索引

    {{ new_name }} ——》 变量 新华出版社 字典或列表用 . 取值

  3. for循环for 标签带有一个可选的{% empty %} 从句,以便在给出的组是空的或者没有被找到时,可以有所操作。

    {% for person in person_list %}

    {{ person.name }}

    # 循环取值

    {% empty %}
    <p>sorry,no person here</p> # person_list 为空时 显示
    {% endfor %}
  4. if 标签 :{% if %}会对一个变量求值,如果它的值是“True”(存在、不为空、且不是boolean类型的false值),对应的内容块会输出。

    {% if i > 300 %}

    大于{{ i }}

    {% elif i == 200 %}

    等于{{ i }}

    {% else %}

    小于{{ i }}

    {% endif %}

  5. .with:使用一个简单地名字缓存一个复杂的变量,当你需要使用一个“昂贵的”方法(比如访问数据库)很多次的时候是非常有用的

    {% with total=business.employees.count %}

    {{ total }} employee{{ total|pluralize }}

    {% endwith %}

    {{ person_list.2.name }}

    {% with name=person_list.2.name %}

    {{ name }}

    {% endwith %}

  6. 内置过滤器

    {{ str|default:'返回值' }} ---->>>> 默认值

    {{ str|filesizeformat }} ---->>>> 将文件大小转换为 可读的 类型

    {{ str|add:'2' }} ---->>>> 给变量加参数 变量位数字 就加法运算 str 拼接

    {{ str|length }} ---->>>> 返回value 的长度

    {{ time|data:'Y-m-d H:i:s' }} ---->>>> 时间转换

    {{ time|data }} ---->>>> 时间转换 需在 stting 中配置

    {{ str|slice:'2:-1' }} ---->>>> 切片

    {{ list|first }} ---->>>> 取第一个

    {{ list|last }} ---->>>> 取最后一个

    {{ list|join:'//' }} ---->>>> 拼接

    {{ str|truncatechars:10 }} ---->>>> 截断字符串

    {{ html|safa }} ---->>>> 不转义 可写入 html 标签

  7. 自定义

    定义filter 过滤器

    1. 在APP下创建一个叫templatetags的python包; 不能变的,必须是包,名字必须是templatetags

    2. 在包中创建一个py文件 my_filters;

    3. 在py文件中写代码

      from django import template

      register = template.Library()  # register的名字不能改
    4. 写函数

      @register.filter

      def add_dsb(value, arg):

      return "{}_{}".format(value, arg)

    5. 给定义的函数加装饰器

      @register.filter

      def add_dsb(value, arg):

      使用

      在模板中使用:

    6. 导入定义的文件

      {% load my_filter %}

    7. 使用过滤器

      {{ name|add_dsb:'very_dsb' }}

      定义simpletag

      和 定义 filter 一样

      @register.simple_tags

      def add_data(args,**kwargs):

      return "{}_{}".format("--".join(args),"
      ".join(kwarg.values()))

      自定义inclusion_tag

      @register.inclusion_tag('show_li.html')

      def show_li(num):

      return {'num':range(1,num+1)}

      写模板 show_li.html

        {% for i in num %}

      • {{ i }}
      • {% endfor %}

    使用:

    1. 模板中导入 {% load 定义的py文件名 %}

      1. filter {{ 变量|函数名:参数 }}
      2. simple_tag {{ 变量|函数名:参数 }}
      3. inclusion_tag {% inclusion_tag的函数名 %}

    标签

    {% csrf_token %}

    添加在form表单中 就可以提交POST请求

    母版和继承

    母版

    就是一个普通的HTML文本,将多个页面公共部分的内容提取出来,在页面中定义多个block块

    {% block content %}

    {% endblock %}

    1. 继承

      在子页面中,继承母版 {% extends 'base.html' %}

      可以重新书写block块中内容

    2. 注意事项

    3. {% extends 'base.html' %} 写在第一行,上面不写内容
    4. 要修改的 内容写在block块中,写在外面不显示

    5. {% extends 'base.html' %} base.html 记得带上引号,不然当做变量去查找

    6. 定义多个block块,一般要定义上 css和js

      组件include

    7. {% include 'nav.html' %}

      静态文件相关

      {% load static %}

      {% static '静态文件相对路径' %} ——》 获取到别名,跟后面的参数进行拼接

      {% get_static_prefix %} ——》 获取到别名

Django templates 模板的语法的更多相关文章

  1. django - Templates模板嵌套语法

    模板继承 1.继承母板:{% extends '母板html文件名称' %} 2.包含子模板:{% include  '子母板html 文件名' %} 模板内容分块 {% block <分块名& ...

  2. django templates模板

    Django templates模板 HTML代码可以被直接硬编码在views视图代码中,虽然这样很容易看出视图是怎么工作的,但直接将HTML硬编码到视图里却并不是一个好主意. 让我们来看一下为什么: ...

  3. python - django 解决 templates 模板语言语法冲突

    # 在使用某个框架时发现语法与Django的模板语法冲突了,于是找到解决方案: {% verbatim %} // 被 verbatim 包裹起来的地方是不会被 django 渲染的 {% endve ...

  4. Django web框架-----Django templates模板

    说明:mytestsite是django框架下的项目,quicktool是mytestsite项目中的应用 一般的变量之类的用 {{ }}(变量),功能类的比如循环.条件判断是用 {% %}(标签) ...

  5. Django之模板层-语法:{{ }}

    模版语法的深度查询(.) views.py def index(request): name = 'name' lis = [1,2,3,4,5,6] dic = {"name": ...

  6. Python Web框架篇:Django templates(模板)

    为什么用templates? views.py视图函数是用来写Python代码的,HTML可以被直接硬编码在views.py之中.如下: import datetime def current_tim ...

  7. Django templates(模板)

    为什么用templates? views.py视图函数是用来写Python代码的,HTML可以被直接硬编码在views.py之中.如下: import datetime def current_tim ...

  8. Django笔记&教程 3-3 模板常用语法

    Django 自学笔记兼学习教程第3章第3节--模板常用语法 点击查看教程总目录 本文主要参考:https://docs.djangoproject.com/en/2.2/ref/templates/ ...

  9. Django框架----模板语法

    Django模板系统 官方文档 一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 只需要记两种特殊符号: {{  }}和 {% %} 变量 ...

随机推荐

  1. dfs问题总结

    组合总和——给定元素不重复 需求:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candida ...

  2. SpringBoot学习(一)—— web项目基础搭建

    首先我们在浏览器打开这个网站 https://start.spring.io/ 打开后可以看到以下页面 在这里我们可以快速搭建一个SpringBoot基础项目,填写和选择完相应的信息后,我们点击那个绿 ...

  3. FTP 150 Opening BINARY mode data connection for MLSD 读取目录列表失败

    这完全是因为防火墙的问题,把服务器的防火墙关闭之后,在连接,一切ok

  4. 【协议】1、tcp,http,socket协议介绍

    1.TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. ...

  5. 在C#中的构造函数和解析函数

    构造函数 class A() { A() {Console.write("构造函数");} } 当你在程序种出现 A a=new A();的时候 程序自动执行 构造函数 A() { ...

  6. webpack4 系列教程(十): 图片处理汇总

    多图预警!!! 此篇博文共 5 张图(托管在 GitHub),国内用户请移步>>>原文. 或者来我的小站哦 0. 课程源码和资料 本次课程的代码目录(如下图所示): >> ...

  7. 使用git push命令如何忽略不想提交的文件夹或者文件

    如下场景是在window下的操作. 在使用node的时候有个node_modules文件夹很大,一般情况下不想提交,忽略的办法如: 方法一(来自评论区):直接在仓库根目录:执行命令echo 'node ...

  8. 外边距塌陷 margin collapsing

    块的顶部外边距和底部外边距有时被组合(折叠)为单个外边距,其大小是组合到其中的最大外边距, 这种行为称为外边距塌陷(margin collapsing),有的地方翻译为外边距合并. 1.相邻的兄弟姐妹 ...

  9. 【工具相关】Web-XAMPP的安装

    一,在查度中搜索XAMPP,会如下所示,下载软件 ,依次进行安装. 二,安装完成之后,会生成如下的图标. 三,打开上图的图标,如下图所示. 四,选择Apache Web Server---->S ...

  10. 将Windows下的InfluxDB、Grafana做成Windows服务

    从网上下载的Windows下的InfluxDB.Grafana,都是控制台程序,打开窗口后,很容易被别人给关掉,因此考虑做成Windows服务,nssm正是解决该问题的利器. 1.下载nssm htt ...