博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day80 django模版学习
阅读量:4677 次
发布时间:2019-06-09

本文共 2133 字,大约阅读时间需要 7 分钟。

  一.模版简介

    DTL:django模版语言

    核心:

      变量 {

{}}

      标签 {% %}

  二.模版语法之变量

    变量渲染:{

{变量}}

    变量深度查询:{

{变量.索引/key值/方法}}

  三.模版之过滤器

    变量之过滤器(是个函数)

    语法:(后面只能传一个函数)

      {

{变量名|过滤器的名字:参数}}

    内置过滤器:

      <p>{

{ age|add:3 }}</p>

      <p>{

{ name|length }}</p>

      <p>{

{ bol|default:'123' }}</p>

      <p>{

{ ll2|default:'我是空的'}}</p>

      <p>{

{ file_size|filesizeformat  }}</p>

      <p>{

{ ctime }}</p>

      <p>{

{ ctime|date:'Y年m月' }}</p>

      <p>{

{ name|slice:'2:4' }}</p>

      <p>{

{ name|truncatechars:6 }}</p>

      <p>{

{ name2|truncatewords:2 }}</p>

      <p>{

{ href|safe }}</p>

  四.模版之标签

    语法:{%  %}

    foo是一个可迭代对象

    {% for a in foo %}

      {% endfor %}

    forloop:counter,couter0,revcounter,revcouter0,first,last,parentloop:父循环的forloop对象

    for---empty的使用

      {% for foo in ll2 %}

        {

{ foo ]}

      {% empty %}

        没有值啊

      {% endfor %}

    if判断

      {% if ll2 %}

        ll2有值

      {% elif ll %}

        ll有值

      {% else %}

        ll2没有值

      {% endif %}

    with重命名

      {% with dic.hobby.1 as a %}

      {

{a}}

      <p>aaaa</p>

      {% endwith %}

  五.自定义过滤器

    1.确认app是否在settings中注册

    2.在app下创建templatetags的模块(名字固定)

    3.在模块下创建py文件(名字随意)--->在模块中{% load py文件名字 %}

    4.在py文件中写过滤器

      from django.template import Library

      register = Library()

      # 指定了name之后,模版上使用的时候,直接用name调用,如果没指定name,就用函数的名字

      #过滤器最多有两个参数

      @register.filter(name='myadd')

      def my_add(a,b):

        print(a+b)

        return a+b

    5.模版中使用

      1 {% load py文件名字 %}

      2 {

{ 变量|myadd:1 }}

  六.自定义标签

    1.确认app是否在settings中注册

    2.在app下创建templatetags的模块(名字固定)

    3.在模块下创建py文件(名字随意)--->在模版中(% load py文件名字 %)

    4.在py文件中写过滤器

      from django.tamplate import Library

      register = Library()

      # 指定了name之后,模版上使用的时候,直接用name调用,如果没指定name,就用函数的名字

      # 过滤器最多有两个参数

      @register.simplr_tag(name='mytag')

      def my_tag(a,b,c):

        return a+b+c

    5.模版中使用

      1 {% load py文件名字 %}

      2 {% mytag 参数1 参数2 参数3 %}

  七. 标签和过滤器的区别:

    1.标签和过滤器的区别:

    2.使用过滤器{

{}}  标签使用:{%  %}

    3.过滤器可以放在if判断后,标签不能放在if判断后

转载于:https://www.cnblogs.com/xiaocaiyang/p/10251119.html

你可能感兴趣的文章
浅谈OC内存管理
查看>>
关于TortoiseSVN的一些知识
查看>>
mysql优化
查看>>
Node.js Web 模块
查看>>
Factory Method(工厂方法)
查看>>
英语口语考试资料Language learning
查看>>
关于TreeSet倒序排列和自定义排列
查看>>
CodeForces 234Div2
查看>>
Vim笔记
查看>>
5.python的字符串
查看>>
操作系统笔记(一)介绍
查看>>
转-- 介绍 Java 自带的线程池(2)
查看>>
RabbitMQ Lazy Queue 延迟加载
查看>>
解决“您当前无权访问该文件夹”的问题
查看>>
Myeclipse快捷键集合
查看>>
URLEncoder和URLDecoder转码
查看>>
STL.Net
查看>>
loongson 2f 和u-boot中的cache命令对照
查看>>
Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 1) B. Bear and Blocks 水题
查看>>
Codeforces Beta Round #8 C. Looking for Order 状压
查看>>