1.模板系统
  1.语法
    1.变量相关
    {{ name}} ,{{ name|length}}, {{ name |default:"默认值"}}
  2.逻辑相关
    1.if判断
    {% if a > b %} //{% if a in b%}
    {% endif %}

    {% if a > b %}
    {% else %}
    {% endif %}

    {% if a > b %}
    {% elif %}
    {% else %}
    {% endif %}
    2.for循环
    {% for i in name-list %}
    {{ i }}
    {% empty %}
    <p>如果为空的话这里可以填写一些提示内容</p>
    {% endfor %}

    forloop.counter
    forloop.counter0
    forloop.revcounter
    forloop.revcounter0

    forloop.first
    forloop.last

    forloop.parentloop -->两层循环
2.filter
  1.常用的filter
  1. length
  2. filesizeformat -->格式化文件大小的
  3. date:'Y-m-d H:i:s' -->格式化时间
  4. silce 切片
  5. safe -->XSS攻击 通过评论的方式写一段JS代码
  6. truncatechars:20 -->截取字符长度 一边用来摘要
  7. default -->默认
2. 自定义的filter
  步骤
  定义阶段
    1. 在app下新建一个python的包:templatetags包
    2. 在上面的python包中新建一个python文件 名字随意
    3. 在上述的python文件中
    form django import template
    #生成一个注册用的示例
    register = template.Libray() #注意是大写的
    #定义一个自定义的filter
    @register.filter(name='new_filter')
    def add_str(arg): (最多有两个参数) #第一个参数是通道符前面的 ,可以有第二个参数
    return ...
  调用阶段
    1. 在Django模板文件中,导入刚才新建的python文件
    {% load py文件名 %}
    2. 按照filter的语法调用
    {{ name|new_filter}} #没有第二个参数传入
    {{ name|new_filter:arg2 }} #传入第二个参数
    3.母版与组件
1.什么时候用母版
  html页面有重复的代码的,把他们提取出来放到一个单独的html文件
2.子页面如何使用母版
  {% extends 'base.html' %} -->必须放在第一行
  {% block 块名 %} {% endblock %} -->子页面使用block去替换母版中同名的块
3.组件
  1.什么时候使用组件
  重复代码 包装成一个小的html文件
  2.如何使用
  {% include '组件.html' %}
3.Django模块语言中关于静态文件的灵活写法
  1.利用static方法帮我凭借静态文件的路径
  STATICFILES_DIRS = [
  os.path.join(BASE_DIR, "static"),
  ]
  {% load static %}
  <link href="{% static 'bootstarp/css/bootstrap.min.css' %}" rel="stylesheet">
4.自定义的simple_tag
  比filter传入的参数多
5.有自定义的inclusion_tag
  用来返回一段html代码
  1.在定义阶段
  在app中下面新建templatetags文件夹
  新建一个xx.py文件
  from django import template
  #生成注册示例 ,名字必须是register
  register = template.Library()
  @register.inlcusion_tag('ul.html')
  def show_ul(num):
  num = 1 if num < 1 else int(num)
  data = {"第{:0>3}号技师".format(i) for i in range(1,num+1)}
  return {'data':data}
2.调用阶段
  {% load xx文件名 %}
  {% show_ul 10 %}
  4.视图
    1.CBV和FBV
      CBV基于类的视图
      FBV基于方法的视图
    2.request对象
      1.相关方法
        1.request.method -->获取请求的方法(GET或者POST等)
        2.request.GET -->通常用来获取URL里面的参数
        3.request.POST -->通常用来获取POST提交过来的数据
        4.request.path_info -->获取用户请求的路径
        5.request.body -->获取用户POST的内容字节形式
5.文件上传
    注意form表单里面需要有 enctype="multipart/form-data"
    在保存上传文件钱,数据需要存放到某个位置,默认担当上传文件小于2.5M的时候,django会将上传文件的全部内容直接上传
    当上传文件很大的时候,django会把上传文件写到临时文件中,然后存放到系统的临时文件里
    在后台处理的时候调用
    <input type='file' name='filename'>

    request.FILES['filename'] -->获取文件对象
    request.FILES['filename'].name -->获取文件对象名
    request.FILES['filename'].chunks() -->从文件对象中一点一点的读取 需要写个循环读取
4.路由系统
    1.分组匹配 -->给视图函数传一个位置参数
    path('delete_p_list/[0-9]{2}/$',views.delete_p_list),
    <a href="/delete_p_list/{{ publisher.id }}">删除</a></button>
    2.分组命名匹配 -->给视图函数传一个关键字参数
      3.反向解析URL
    本质上就是给url匹配模式起别名 然后再用别名拿到具体的URL路径
    re_path('publisher_list/[0-9]{2}/$',views.Publisher.as_view(),name='pulisher_list'),
    <a href="{% url 'pulisher_list' %}" class="active">
1.如何使用
    在模板语言中
    {% url '别名' %}
    在视图中
    from django import reverse
    reverse('别名') -->得到一个具体的URL路径

Django模板语言的学习的更多相关文章

  1. 6月15日 python学习总结 Django模板语言相关内容

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  2. Django模板语言初识

    一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...

  3. Django模板语言的复用

    一.include标签 由于在项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的,基于这个问题,我们可以采用模板语言复用include标签来帮我们解决,这样就避免 ...

  4. Django模板语言相关内容 Djan

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  5. Django——模板语言相关内容

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  6. Django 模板语言 路由 视图

    . 模板语言(字符串替换) . 母版和继承 . 什么时候用母版? html页面有重复的代码,把它们提取出来放到一个单独的html文件. (比如:导航条和左侧菜单) . 子页面如何使用母版? {% ex ...

  7. django模板语言的注释

    就像HTML或者Python,Django模板语言同样提供代码注释. 注释使用 {# #} : ? 1 {# This is a comment #} 注释的内容不会在模板渲染时输出. 用这种语法的注 ...

  8. Django模板语言(常用语法规则)

    Django模板语言 The Django template language 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签 ...

  9. Django模板语言与视图(view)

    常用语法 {{  }}和{% %} 变量相关的用{{}} , 逻辑相关的用{% %} 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}. 当模版引擎遇到一个变量,它将计算这个变量,然后 ...

随机推荐

  1. ArrayMap和HashMap区别

    什么是Map? Map的三个特点 1.包含键值对 2.键唯一 3.键对应的值唯一 一:hash 什么是Hash Hash,也可以称为“散列”,就是把任意长度的输入,通过散列算法,变换成固定长度的输出, ...

  2. JAVA字符编码二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换

    第二篇:JAVA字符编码系列二:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换   1.函数介绍 在Java中,字符串用统一的Unicode编码,每个字符占用两个字节,与编码有 ...

  3. Python知乎上推荐的项目

    原文地址:https://www.zhihu.com/question/29372574/answer/88744491 作者:Wayne Shi链接:https://www.zhihu.com/qu ...

  4. odoo开发笔记 -- 触发机制/埋点设置

    场景描述: 项目需求中,经常会需要,当某个字段处某个特定状态时候,触发执行特定的方法:或者创建某条记录的时候,同时做另一个操作:如何实现类似的需求? 实现方式: odoo中提供了几种触发方式: 1. ...

  5. RabbitMQ的应用总结

    RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准 ...

  6. 大数据web管理工具——HUE

    一.概述 HUE是一个开源的Apache Hadoop UI系统,早期由Cloudera开发,后来贡献给开源社区.它是基于Python Web框架Django实现的.通过使用Hue我们可以通过浏览器方 ...

  7. 自定义MyBatis

    自定义MyBatis是为了深入了解MyBatis的原理 主要的调用是这样的: //1.读取配置文件 InputStream in = Resources.getResourceAsStream(&qu ...

  8. 开发日记:Windows进程守护工具

    近期,中心应用服务无故关闭.在检查系统和应用程序日志无果后采取了进程守护的方法.测试期内,脚本未出现系统资源占用过多的情况. 使用说明:1.进程守护.vbs  使用时需修改运行周期(10行).守护进程 ...

  9. WeQuant教程—1.3 利用回测工具降低交易风险

    量化系统投入实际使用之前,人们会希望提前测试交易的效果.这个期间往往涉及代码的改动和参数的调整.最常见的做法是将历史数据输入量化系统,让量化系统根据既定的交易逻辑进行操作,观察和分析交易结果,找到问题 ...

  10. [Linux]Ubuntu设置时区和更新时间

    Ubuntu 下执行 date -R 查看现在时区 执行 tzselect查看时区,注意这个命令只能查询不能真正的修改时区 执行下面命令,复制文件到 /etc/可修改时区 sudo cp /usr/s ...