Django自定义模板
定义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自定义模板的更多相关文章
- Django自定义模板函数
Django自定义模板函数 https://www.cnblogs.com/SunsetSunrise/p/7680491.html 在django中新建一个应用:listpage在listpage中 ...
- django自定义模板标签
# 创建自定义模板标签目录 django_project_name app_name templatetags (创建Python Packge,注意一定要用templatetags这个名字) my_ ...
- 【python】Django自定义模板函数
参考:https://blog.csdn.net/wenyuanhai/article/details/73656761 注意: 1.自定义模板函数的路径必须为APP的templatetags下:ap ...
- JavaScript中作用域回顾(避免使用全局变量)(瀑布流的实现)(scroll事件)以及Django自定义模板函数回顾
页面显示照片样式为瀑布流: 上面的div个数可以按照自己安排进行划分.img的分布可以使用模板标签以及自定义模板函数进行排布: 自定义模板函数实现可以看,最后几列:python---django中模板 ...
- Django 自定义模板标签和过滤器
1.创建一个模板库 使用模板过滤器的时候,直接把过滤器写在app里,例如:在app里新建一个templatetags的文件夹,这个目录应当和 models.py . views.py 等处于同一层次. ...
- Django 自定义模板标签 报错django.template.exceptions.TemplateSyntaxError: '####' is not a registered tag library. Must be one of:
我写代码遇到这个错误,但是发现程序没有写错,好像是程序有缓存,重新运行几次就好了. 自定义模板标签,可以不用写views,url直接通过自定义函数把变量传给模板. 具体实现: 1.在app下新建Pyt ...
- Django自定义模板标签和过滤器
1.创建模板库 在某个APP所在目录下新建包templatetags,然后在其中创建存储标签或者过滤器的的模块,名称随意,例如myfilters.py. 在这个模块中编写相关代码. 注意:templa ...
- Django 自定义模板语法
from django import template from django.utils.safestring import mark_safe register = template.Librar ...
- Django 自定义模板标签TemplateTags
创建自定义的模板标签(template tags) Django提供了以下帮助函数(functions)来允许你以一种简单的方式创建自己的模板标签(template tags): simple_tag ...
随机推荐
- Atitit 自然语言处理原理与实现 attilax总结
Atitit 自然语言处理原理与实现 attilax总结 1.1. 中文分词原理与实现 111 1.2. 英文分析 1941 1.3. 第6章 信息提取 2711 1.4. 第7章 自动摘要 3041 ...
- Parcelable序列化的使用,关于intent.getParcelableArrayExtra的使用
Parcelable相较于Serializable的效率更高 public class ChargeMode implements Parcelable{ public String name; pu ...
- android Content Provider介绍
ContentProvider(内容提供者)是Android中的四大组件之一.主要用于对外共享数据,也就是通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过Conte ...
- 关于多个block问题
在某个添加文本的页面中,leftbarbutton是删除(直接将数组中的这个string删除),rightbarbutton是完成,分别对应两个block,完成的block是一开始写的,写到了view ...
- 改变Activity启动时的默认动画
why 在开发中我们可能需要改变这一行为,一般基于2种理由: 产品的spec这么要求的: 想自己控制这个行为,因为在Android设备上可能每个的这一默认行为都不一样,厂商可以很容易修改它,从而导致a ...
- Git本地服务器搭建及使用详解
Git本地服务器搭建及使用 Git是一款免费.开源的分布式版本控制系统.众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个 ...
- 使用Hudson进行持续集成
小Alan最近接了一个任务,就是使用Hudson进行持续集成,持续集成是怎么个概念,3言2语也说不清,有兴趣的童鞋去找我二奶度娘问问就知道了,说到Hudson就不得不提一下jenkins,目前来说用j ...
- plain framework 商业版 开发总结2 项目管理器
任何事情都有三个阶段,分析.制作.质检的过程.在程序中就分为设计.编码.调试(测试)三个阶段,其中设计最为重要,设计的不好会导致编码和调试重复,甚至最后又回到了设计的过程.为了不会重复返工,所以设计的 ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- POJ 2739. Sum of Consecutive Prime Numbers
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20050 ...