django -- 自定义simpletag 和 filter】的更多相关文章

django中自定义simpletag,即使用自己定义的函数在html中处理数据. 步骤: 1.创建并注册app settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles',…
简述:django 在views中有数据需要通过字典(dict)的方式传递给template,该字典中又包含了字典,而且字典中的键值还是一个对象,在template中处理传递过来的数据的时候,字典不能通过键值的方式取出原有数据,对象不能通过(.)的方式直接取出数据,通过大量地查阅资料,最终通过过滤器(filter)的方式解决! 1.需要传递到template的数据,在 views.py 中的index函数中 latest_article_list 是一个Article对象的列表,包含文章ID.作…
1.自定义simple_tag: 1).在app目录名下创建templatetags目录,并新建__init__.py文件. 2).在templatetags目录下创建任意名字的py文件,例如remainder.py. from django import template from django.utils.safestring import mark_safe register = template.Library() @register.simple_tag() def remainder…
Tags for <ul> {% for user in user_list %} <li>{{ user.name }}</li> {% endfor %} </ul> for循环可用的一些参数: Variable Description forloop.counter 当前循环的索引值(从1开始) forloop.counter0 当前循环的索引值(从0开始) forloop.revcounter 当前循环的倒序索引值(从1开始) forloop.rev…
一.Tags(一)for 1.基本用法 <ul> {% for user in user_list %} <li>{{ user.name }}</li> {% endfor %} </ul> 2.for循环可用的一些参数 forloop.counter 当前循环的索引值(从1开始) forloop.counter0 当前循环的索引值(从0开始) forloop.revcounter 当前循环的倒序索引值(从1开始) forloop.revcounter0…
django 自定义标签和过滤器 Django支持自定义标签和过滤器.起初还不太重视它这项功能,但最近试了试自定义标签.发现django这个功能实在是太爽了. 首先在你项目的一个app中建立一个python源文件夹,(即文件夹里面要包含一个__init__.py.)文件夹名为templatetags.  此文件夹便是存放自定义标签和过滤器的源码的地方了. 再如果是在templatetags文件夹中定义了标签,如 test_tags.py,要如何使用我们自定义的test_tags.py呢.很简单,…
设定自定义过滤器之前要现在配置文件内把自己项目名在 INSTALLED_APPS 内导入 #已安装的django应用 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', #将自己的应用,填充…
1.首先在在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 2.在app中创建templatetags模块(模块名只能是templatetags) 3 创建任意 .py 文件,如:my_tags.py from django import template from django.utils.safestring import mark_safe register = template.Library() #register…
今天在创建自定义过滤器的时候,设置已正常.但是在运行后报: 'filter' is not a valid tag library: Template library filter not found, tried django.templatetags.filter,django.contrib.admin.templatetags.filter,django.contrib.staticfiles.templatetags.filter 之前自定义的 templatetags 名称是 fil…
Django 自定义标签与过滤器报错 按照网上的教程如果想使用自定义的标签与过滤器就得往settings.py中添加下列数据 TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR, "/templates",], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.templa…
Django 自定义表名和字段名 通过db_table和db_column自定义数据表名和字段名 假如你的数据库里已经有了一张数据表,且该表包含多个字段,你希望通过Django直接访问该数据表的各个字段而不是重新建立新表,你这时可以通过db_table指定数据表名,还可以通过db_column指定希望访问的字段名. 在我们创建一个模型时,Django的ORM会根据应用名(app name), 模型名(model name)和字段名(field name)自动在数据库中创建数据表.比如我们有一个B…
1.Django自带的过滤器filter views.py中代码 def template_tags(request): import datetime content = '三胖content三胖contentSBcontentsbcontentcontentcontentcontentcontent' title = 'tiTLe' stus = ['xiaohei', 'xiaobai', 'lhy'] info = {"money":9999} cur_date = datet…
# -*-coding:utf-8-*- __author__ = "GILANG (pleasurelong@foxmail.com)" """ django 自定义用于view的装饰器 """ from functools import wraps def object_does_not_exist(func): """ 不带参数的装饰器 """ @wraps(f…
Django自定义模板函数 https://www.cnblogs.com/SunsetSunrise/p/7680491.html 在django中新建一个应用:listpage在listpage中新建templatetags文件夹在templatetags文件夹中新建XX.py文件(建议XX.py命名为:functions.py)在XX.py中写入: from django import template register = template.Library() @register.sim…
上一篇我们讲了SpringBoot中Tomcat的启动过程,本篇我们接着讲在SpringBoot中如何向Tomcat中添加Servlet.Filter.Listener 自定义Servlet.Filter.Listener Spring容器中声明ServletRegistrationBean.FilterRegistrationBean.ServletListenerRegistrationBean @Bean public ServletRegistrationBean customServl…
Django自定义分页并保存搜索条件 1.自定义分页组件pagination.py import copy class Pagination: def __init__(self, current_page_num, all_count, request, per_page_num=10, page_count=11): """ 封装分页相关数据 :param current_page_num: 当前页码数 :param all_count: 数据库中总数据条数 :param…
django自定义实现登录验证 django内置的登录验证必须让开发者使用django内置的User模块,这会让开发者再某些方面被限制住 下面的模块是我自己自定义实现的django验证,使用方式和django的一样 from django.http import HttpResponse from django.shortcuts import redirect from django.conf import settings from django.views import View clas…
可以自己写python函数放在模板语言里用 这种方法是django里面的 filter {{ item.event_start|date:"Y-m-d H:i:s"}} {{ bio|truncatewords:"30" }} {{ my_list|first|upper }} {{ name|lower }} {{name|python的函数}} django内部把python函数放在模板中括号里面使用 在urls.py 添加tpl4 对应关系 路由关系 from…
自定义filter 自定义filter时,使用装饰器fileter 在html中,使用传参方式为: 参数1|函数名:参数2 并且函数和参数之间,不能有空格,如果有空格,会报错. filter和simple_tag之间貌似很相似,但区别在于: filter只能传2个参数,并且可以应用到if语句的判断上: simple_tag可以传多个参数,并且参数间可以有多个空格,但不能应用到if语句的判断上: 例如:…
Django的文档里面有这么一句 The app that contains the custom tags must be in INSTALLED_APPS  in order for the {% load %} tag to work. 当第一次load一个template的时候,调用源码 def get_templatetags_modules(): """ Return the list of all available template tag modules.…
定义simple_tag步骤 一.创建templatetags文件 首先在app下创建templatetags文件:名字不许叫这个,不能改变. 二.在文件中创建一个py文件 文件名自定义 三.在创建的文件中写具体的方法 注意点: 1.必须引入指定的模块 from django import template from django.utils.safestring import mark_safe 2.创建一个对象register register = template.Library() 注意…
Context和RequestContext都能被Template 进行render RequestContext类接受reqest,字典,processors 实例化.并被TEMPLATE_CONTEXT_PROCESSORS处理.. render_to_response 接受模板,字典,context_instance参数,接受一个Context类为参数 创建一个模板库分两步走: 第一,决定模板库应该放在哪个Django应用下. 如果你通过 manage.py startapp 创建了一个应…
实现自定义过滤器 1. 创建register变量 在你的模块文件中,你必须首先创建一个全局register变量,它是用来注册你自定义标签和过滤器的, 你需要在你的python文件的开始处,插入几下代码: from django import templateregister = template.Library()   2. 定义过滤器函数 自定义的过滤器就是一个带1,2个参数的python函数,一个参数放变量值,一个用来放选项值. 比如{{ var|remove:"bar" }},…
自定义template过滤器的方法参考文档,不再赘述 is_safe 文档说明过滤的两种最终形态,其中一种是设置register.filter(is_safe=True),但是对is_safe的具体作用说的云山雾绕的,而查了些博文只是简单的说is_safe可以关闭掉自动转义(这个说法是错误的!) 我尝试了加或者不加is_safe的效果 @register.filter def demo(value): return '<br>' + value @register.filter(is_safe…
看文档templatetag 直接放在app下的templatetag 文件夹下就好,这里想放到一个公共的目录下,然后写下简单的自定义tag的模板. django1.6 创建 在项目目录下建立如下的文件夹结构 templatetags/ __init__.py eryatags.py eryatags.py # -*- encoding=utf-8 -*- from django import template register = template.Library() from util.cr…
# 创建自定义模板标签目录 django_project_name app_name templatetags (创建Python Packge,注意一定要用templatetags这个名字) my_tags.py(名字随便起) # my_tags.py里面的内容  *先导入模块 from django import template register = template.Library() @register.simple_tag() # simple_tag能够对传入多个参数有效 @reg…
1.创建模板库 在某个APP所在目录下新建包templatetags,然后在其中创建存储标签或者过滤器的的模块,名称随意,例如myfilters.py. 在这个模块中编写相关代码. 注意:templatetags所在APP应该在配置文件中进行配置. 2.定义过滤器 过滤器是一个函数,第一个参数是被处理的值,之后,可以有任意个参数,作为过滤器参数. from django import template from django.template.defaultfilters import stri…
一.自定义过滤器 1.自定义过滤器文件存放位置 在APP应用下创建名为templatetags(该文件夹名固定)的文件包(包含__init__.py文件) 注意APP必须在setting中注册 即在setting文件中的INSTALLED_APPS列表中添加‘teacher’这个元素 不添加的话会影响后面自定义过滤器的注册 在templatetags文件夹下创建teacher_filter.py文件 2.自定义过滤器本质是一个自定义的函数 只能接受一个或两个参数 在teacher_filter文…
代码布局 有的时候框架给的过滤器不够用,需要自定义一些过滤器,所以就需要我们自己来定义一些过滤器等 自定义代码放置的路径 某个app特用(独有)的 - app 目录下的 templatetags文件夹内(文件夹内需要有__init__.py文件) 公用的 - 再创建一个新的app,然后在新的app中创建templatetags(固定的单词写法)文件夹,但是需要在setting文件中的INSTALL_APPS中注册,然后就可以应用了 自定义模板过滤器 定义过滤器 在templatetags的文件夹…