定义simple_tag步骤

一、创建templatetags文件

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


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

文件名自定义


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

注意点:

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

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

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

装饰器的名字:

@register.simple_tag

4、数据返回

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

5、特别 mark_safe()

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

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

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

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

2、使用

规则:

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

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

定义filter步骤

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

区别

filter和simple_tags的区别:

1、装饰器不一样

filter:

@register.filter

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

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

3、使用不同

filter的规则:

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

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

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

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

Django自定义模板的更多相关文章

  1. Django自定义模板函数

    Django自定义模板函数 https://www.cnblogs.com/SunsetSunrise/p/7680491.html 在django中新建一个应用:listpage在listpage中 ...

  2. django自定义模板标签

    # 创建自定义模板标签目录 django_project_name app_name templatetags (创建Python Packge,注意一定要用templatetags这个名字) my_ ...

  3. 【python】Django自定义模板函数

    参考:https://blog.csdn.net/wenyuanhai/article/details/73656761 注意: 1.自定义模板函数的路径必须为APP的templatetags下:ap ...

  4. JavaScript中作用域回顾(避免使用全局变量)(瀑布流的实现)(scroll事件)以及Django自定义模板函数回顾

    页面显示照片样式为瀑布流: 上面的div个数可以按照自己安排进行划分.img的分布可以使用模板标签以及自定义模板函数进行排布: 自定义模板函数实现可以看,最后几列:python---django中模板 ...

  5. Django 自定义模板标签和过滤器

    1.创建一个模板库 使用模板过滤器的时候,直接把过滤器写在app里,例如:在app里新建一个templatetags的文件夹,这个目录应当和 models.py . views.py 等处于同一层次. ...

  6. Django 自定义模板标签 报错django.template.exceptions.TemplateSyntaxError: '####' is not a registered tag library. Must be one of:

    我写代码遇到这个错误,但是发现程序没有写错,好像是程序有缓存,重新运行几次就好了. 自定义模板标签,可以不用写views,url直接通过自定义函数把变量传给模板. 具体实现: 1.在app下新建Pyt ...

  7. Django自定义模板标签和过滤器

    1.创建模板库 在某个APP所在目录下新建包templatetags,然后在其中创建存储标签或者过滤器的的模块,名称随意,例如myfilters.py. 在这个模块中编写相关代码. 注意:templa ...

  8. Django 自定义模板语法

    from django import template from django.utils.safestring import mark_safe register = template.Librar ...

  9. Django 自定义模板标签TemplateTags

    创建自定义的模板标签(template tags) Django提供了以下帮助函数(functions)来允许你以一种简单的方式创建自己的模板标签(template tags): simple_tag ...

随机推荐

  1. MySql 修改列的注释信息的方法

    1. 问题     已经有很多数据的按照业务逻辑分表的一系列表修改一个字段(类型,如-1:默认值,1:表示'人员id',2:表示'公司id')的注释2. 解决方法     1> 使用alter ...

  2. MySQL大数据优化

    我们考虑的情况是在你的数据量很大的情况下,千万级别的数据量.不要当我们的请求响应时间已经让我无法忍受的时候,再来想起来优化,可能有点迟了.因为可能会丢失很多潜在的价值客户.所以,在我们当初设计表,或者 ...

  3. js条件判断时隐式类型转换

    Javascript 中,数字 0 为假,非0 均为真 在条件判断运算 == 中的转换规则是这样的: 如果比较的两者中有布尔值(Boolean),会把 Boolean 先转换为对应的 Number,即 ...

  4. arcgis api for js入门开发系列三地图工具栏(含源代码)

    上一篇实现了demo的地图加载展示,在上篇实现的基础上,新增了地图工具栏以及通用地图控件功能,比如地图框选缩放.地图漫游.清空.量算工具.地图导航控件.地图比例尺控件.地图鹰眼图等等,总共分为5个部分 ...

  5. ipad和iphone的适配

    关于xib或者storybord下iphone的横竖屏的适配以及ipad的适配 ios8出现了Size Classes,解决了各种屏幕适配的问题,他把屏幕的宽和高分别分成了三种,把屏幕总共分成了九种情 ...

  6. iOS提交AppStore后申请加急审核

    提交审核后进去下面链接申请加急审核链接:https://developer.apple.com/appstore/contact/appreviewteam/index.html 在I would l ...

  7. (八)Eclipse创建Maven项目运行mvn命令

    1.Eclipse创建Maven项目 使用Eclipse创建一个Maven项目非常的简单,选择菜单项File>New>Other(也可以在项目结构空白处右击鼠标键),在弹出的对话框中选择M ...

  8. gulp rev manifest 添加目录前缀

    gulp-rev 生成的manifest默认为: "index.css": "index.css?v=04aff97a7b", 为避免同名文件覆盖版本号,对替换 ...

  9. 关于sql中in 和 exists 的效率问题,in真的效率低吗

    原文: http://www.cnblogs.com/AdamLee/p/5054674.html 在网上看到很多关于sql中使用in效率低的问题,于是自己做了测试来验证是否是众人说的那样. 群众: ...

  10. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...