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 ...
随机推荐
- JVM调优总结
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作 ...
- 时光倒流程序设计-AlloyTicker
熵与负熵 熵遵循熵增原理,即无序非热能与热能之间的转换具有方向性.薛定谔说过:生命本质在于负熵.熵代表的是无序,负熵就是熵的对立,而负熵表示的则是有序.汲取负熵(米饭.面包.牛奶.鸡蛋),可以简单的理 ...
- MPAndroidChart 3.0——LineChart(折线图)
显示效果 MPAndroidChart每一种图表的基本使用方式都基本相同 了解一种图表的实现 参考项目源码其他的图表也就差不多哩 在布局文件中定义 <com.github.mikephil.ch ...
- MVC学习系列4--@helper辅助方法和用户自定义HTML方法
在HTML Helper,帮助类的帮助下,我们可以动态的创建HTML控件.HTML帮助类是在视图中,用来呈现HTML内容的.HTML帮助类是一个方法,它返回的是string类型的值. HTML帮助类, ...
- Oracle update和order by
今天遇到一个关于SQL转换成Oracle语句的问题,描述如下: select * from emp order by deptno; select * from dept; Sql Server: u ...
- C#语言学习记录
1.&& || ! 与或非-逻辑运算符,&&的优先级大于||.
- 3-linux下部署tomcat应用
linux下部署tomcat应用 相关软件下载 jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downlo ...
- Windows批处理:请求远程协助
公司办公场地分别在两个不同的楼层,处理问题要来回跑,所以思考使用远程访问的方式解决问题.同事大多对电脑不熟悉,使用「通讯软件」和「电话」教同事开启远程桌面沟通成本挺高,另外公司IP地址.账号密码都没统 ...
- 在Azure上部署Windows Server Core
作为服务器操作系统,图形界面真心有些多余了,这也是很多人喜欢Linux服务器的原因之一.从Windows Server 2008开始,微软提供了Server Core版本,其实就是一个没有图形界面的服 ...
- <编程珠玑>笔记 (一) 问题-算法-数据结构
1 精确描述问题 第一章强调的重点在于”精确的描述问题“,这是程序开发的第一步 -- "Problem definition" 1.1 Precise problem stat ...