自定义标签或过滤器

渲染变量的方法(过滤器:修改数据或格式转换)

{{ var | add }}
{{ var | date:"Y-m" }}
{{ var | safe }}

渲染标签的方法

{% tag_name %}
{% for %}……{% endfor %}
{% csrf_token %}

自定义

需要在应用目录下创建templatetags的包

然后在里面创建Python脚本。

自定义过滤器

参数必须是两个

from django import template
# 实例化的名字必须是register
register = template.Library() @register.filter
def func_filter(var1,var2):
……
return …… # 使用时:
{{ var | func_filter:1 }}

自定义标签

无参数限制

@register.simple_tag
def func_tag(var1,var2):
……
return …… # 使用方法
{% func_tag var 2 %}

加载自定义的

#在HTML文件开头写上
{% load my_tags %}

使用include引用

在页面中有独立固定模块时使用。

在template目录下创建include_demo.html,不需要HTML的结构,在其中直接定义标签和内容。

引用时使用 {% include 'include_demo.html' %}

extend时变量获取问题

views里写一个函数用来拿这些变量,供别的函数调用。会导致数据和样式脱离。

把固定部分且有变量的拆成一个单独的模块。

在需要引用的页面中直接include引入模块还是拿不到变量。

使用自定义可引用标签解决

在templatetags里的自定义tag脚本里写

@register.inclusion_tag("blog/menu.html")
def get_menu(user):
……
return {……}

在渲染标签前线执行函数,拿到返回字典传给引入的模块。

前段使用它 {% get_menu user %}

view函数在返回时都要返回一个user变量供标签使用。

Django--知识补充的更多相关文章

  1. Python学习---django知识补充之CBV

    Django知识补充之CBV Django: url    -->  def函数      FBV[function based view]  用函数和URL进行匹配 url    --> ...

  2. Django知识补充

    目录 一.文件上传 二.Models补充 三.Django总结 一.文件上传 1.通过form表单或者通过From类上传 views.py from django.shortcuts import r ...

  3. CRM中QueryDict和模型表知识补充

    CRM中QueryDict和模型表知识补充 1.QueryDict的用法 request.GET的用法:1.在页面上输入:http://127.0.0.1:8000/index/print(reque ...

  4. Python 学习第十九天 django知识

    一,django 知识总结 1,同一个name属性的标签,多个值获取 <form action="/login/" method="POST" encty ...

  5. Redis基础知识补充及持久化、备份介绍(二)--技术流ken

    Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...

  6. Android知识补充(Android学习笔记)

    Android知识补充 ●国际化 所谓的国际化,就是指软件在开发时就应该具备支持多种语言和地区的功能,也就是说开发的软件能同时应对不同国家和地区的用户访问,并针对不同国家和地区的用户,提供相应的.符合 ...

  7. (C/C++学习笔记) 二十四. 知识补充

    二十四. 知识补充 ● 子类调用父类构造函数 ※ 为什么子类要调用父类的构造函数? 因为子类继承父类,会继承到父类中的数据,所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程. ...

  8. SQL语句之 知识补充

    SQL语句之 知识补充 一.存储过程 运用SQL语句,写出一个像函数的模块,这就是存储过程. 需求: 编写存储过程,查询所有员工 -- 创建存储过程(必须要指定结束符号) -- 定义结束符号 DELI ...

  9. Django组件补充(缓存,信号,序列化)

    Django组件补充(缓存,信号,序列化) Django的缓存机制 1.1 缓存介绍 1.缓存的简介 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑 ...

  10. Django 知识点补充

    Django 知识点补充 1 Django如何在Model保存前做一定的固定操作,比如写一条日志 (1)利用Django的Model的Signal Dispatcher, 通过django.db.mo ...

随机推荐

  1. linux 实现VLAN

    本文将在一台linux机器上,利用linuxbridge 等技术模拟创建VLAN 环境. 首先,创建vlan interface ip link add link ens33 name ens33.8 ...

  2. 将mysql数据库数据导出为.sql文件

    打开Navicat ,在我们要到处的数据上面右击鼠标,然后弹出的快捷菜单上点击“转储SQL 文件”,在再次弹出的子菜单项中选择第一个“数据跟结构”.

  3. Map根据value排序ASC DESC

    原文:http://blog.csdn.net/k21325/article/details/53259180 需求有点刁钻,写关键词组合匹配标题的时候,遇到关键词像这样 XXX XXX 1222 X ...

  4. Mybatis 增强工具包 Mybatis-Plus

    原文:https://www.oschina.net/p/mybatis-plus

  5. Codeforces 479B. Towers 暴力

    纯暴力..... B. Towers time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  6. Symantec Backup Exec部署手册

    转载  http://xiaxiaoguo.blog.51cto.com/858884/402810 Symantec Backup Exec部署手册 目录 1.Backup Exec 12.5安装. ...

  7. nyist oj 19 擅长排列的小明(dfs搜索+STL)

    擅长排列的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 小明十分聪明.并且十分擅长排列计算.比方给小明一个数字5,他能立马给出1-5按字典序的全排列,假设你想 ...

  8. PC_excel完毕一列英文小写变大写

    原创作品,出自 "深蓝的blog" 博客.欢迎转载,转载时请务必注明出处.否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong ...

  9. JSON介绍及Android最全面解析方法(Gson、AS自带org.son、Jackson解析)

    前言 今天,我们来介绍一下现今主流的数据交换格式-JSON! 相同作为主流为数据交换格式-XML,假设有兴趣能够阅读我写的XML及其DOM.SAX.PULL解析方法和对照 文件夹 定义 JavaScr ...

  10. 华为云分布式数据库中间件DDM和开源MyCAT对比

    前言 华为云分布式数据库中间件(Distributed Database Middleware)是解决数据库容量.性能瓶颈和分布式扩展问题的中间件服务,提供分库分表.读写分离.弹性扩容等能力,应对海量 ...