zoukankan      html  css  js  c++  java
  • Django自定义模板

    定义simple_tag步骤

    一、创建templatetags文件

    首先在app下创建templatetags文件;名字不许叫这个,不能改变。

    1483541809345

    二、在文件中创建一个py文件

    文件名自定义

    1483541870949

    三、在创建的文件中写具体的方法

    注意点:

    1、必须引入指定的模块
    from django import template
    from django.utils.safestring import mark_safe
    2、创建一个对象register
    register = template.Library()

    注意:
    名字必须叫这个register ,不能更改。

    3、写具体的方式的时候加上装饰器

    装饰器的名字:

    @register.simple_tag

    1483542115045

    4、数据返回

    方法写完要将具体的数据通过retunr返回。

    QQ截图20170104231044

    5、特别 mark_safe()

    上面图片中我们看到返回数据的时候加了和mark_safe()方法。

    说明:
    正常我们返回的是字符串,直接显示在页面上也是字符串

    如果我们想返回一些标签,标签相对浏览器来说,的有渲染效果,那么我们就必须通过mark_safe()方法将要返回的数据进行转化,然后返回后,标签就具有本身的效果。

    四、前台页面的使用
    1、首先在前台页面要导入文件
    {% load 文件名 %}

    1483542278983

    2、使用

    规则:

    {% 方法名 参数1 参数2 %}

    1483542357832

    注意:
    1、可以接收多个参数,用空格隔开。
    2、这个定义的模板语言不能和判断语言组合,不然执行不了。

    定义filter步骤

    filter自定义模板的步骤和simple_tags的步骤是一样的,可以参考前面。

    区别

    filter和simple_tags的区别:

    1、装饰器不一样

    filter:

    @register.filter

    1483543330806

    2、定义的方法接收的参数不一样

    simple_tags定义的方法能接收多个参数
    filter定义的方法最多只能接收2个参数

    3、使用不同

    filter的规则:

    {% 参数1|方法:"参数2" %}

    1483543448395

    说明:
    filter定义的方法可以和判断语和在一起使用。

    filter定义的方法还可以直接通过双花”{{ }}“括号使用。

    filter定义的方法要想接收多个数据,只能将数据作通过指定的符号组合成字符串,然后传入,再在方法中通过符号进行分割来获取。

    1483543597016

  • 相关阅读:
    Ubuntu16.04+GTX2070+Driver418.43+CUDA10.1+cuDNN7.6
    N皇后问题
    Linux Bash之通配符
    Linux Bash之正则表达式
    Linux Bash文本操作之grep篇
    Linux Bash文本操作之sed篇其二
    Integer对象两种创建方式的比较
    Class文件版本号
    group by、group_concat()、if()
    字节码命令与Java语言在语义描述能力上的差异
  • 原文地址:https://www.cnblogs.com/jayafs/p/6250687.html
Copyright © 2011-2022 走看看