Django--知识补充
自定义标签或过滤器
渲染变量的方法(过滤器:修改数据或格式转换)
{{ 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--知识补充的更多相关文章
- Python学习---django知识补充之CBV
Django知识补充之CBV Django: url --> def函数 FBV[function based view] 用函数和URL进行匹配 url --> ...
- Django知识补充
目录 一.文件上传 二.Models补充 三.Django总结 一.文件上传 1.通过form表单或者通过From类上传 views.py from django.shortcuts import r ...
- CRM中QueryDict和模型表知识补充
CRM中QueryDict和模型表知识补充 1.QueryDict的用法 request.GET的用法:1.在页面上输入:http://127.0.0.1:8000/index/print(reque ...
- Python 学习第十九天 django知识
一,django 知识总结 1,同一个name属性的标签,多个值获取 <form action="/login/" method="POST" encty ...
- Redis基础知识补充及持久化、备份介绍(二)--技术流ken
Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...
- Android知识补充(Android学习笔记)
Android知识补充 ●国际化 所谓的国际化,就是指软件在开发时就应该具备支持多种语言和地区的功能,也就是说开发的软件能同时应对不同国家和地区的用户访问,并针对不同国家和地区的用户,提供相应的.符合 ...
- (C/C++学习笔记) 二十四. 知识补充
二十四. 知识补充 ● 子类调用父类构造函数 ※ 为什么子类要调用父类的构造函数? 因为子类继承父类,会继承到父类中的数据,所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程. ...
- SQL语句之 知识补充
SQL语句之 知识补充 一.存储过程 运用SQL语句,写出一个像函数的模块,这就是存储过程. 需求: 编写存储过程,查询所有员工 -- 创建存储过程(必须要指定结束符号) -- 定义结束符号 DELI ...
- Django组件补充(缓存,信号,序列化)
Django组件补充(缓存,信号,序列化) Django的缓存机制 1.1 缓存介绍 1.缓存的简介 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑 ...
- Django 知识点补充
Django 知识点补充 1 Django如何在Model保存前做一定的固定操作,比如写一条日志 (1)利用Django的Model的Signal Dispatcher, 通过django.db.mo ...
随机推荐
- 二 hbase
Hbase 本文介绍Hbase.但本文的前提是假设你已经读过Google的BigTable论文. Introduction Hbase 是基于Google Big Table用java实现的分布式,列 ...
- 最简单 NDK 样例
以下在 Ubuntu下 编译一个 c 语言 hello world 并在 android 手机或模拟器上执行 进入程序位置 cd ~/pnp5/jni 有三个文件 main.c Android.mk ...
- GDI+学习之------ 画线、区域填充、写字
<精通GDI编程>里的代码.在学习过程中对它加以总结,以防以后用到,全部代码都是在MFC 单文档中实现的,写在View::OnDraw(CDC */*pDC*/)中 画线/边框(Pen) ...
- Lunix
1.Lunix系统登录.重启.关闭 ①.登录 ②.重启 ③.关闭:shutdown [选项][时间][警告信息] -k 向所有用户发出警告信息 -r 关机后立即重启 -h 关机后不重新启动 -f 快速 ...
- java图片处理工具之-ImageMagick+jmagick(二)
简单的图片处理測试类: public class ImageUtil { static{ System.setProperty("jmagick.systemclassl ...
- CSS总结01
1 CSS 的作用是? 2 如何引入 CSS 样式? 3 CSS 选择器的基本类型和复合选择器分别是? 4 字体.背景.列表和链接和鼠标的属性有哪些? 5 如何理解盒子模型? 6 浮动的方式有哪些,如 ...
- Linux/Android——usb触摸屏驱动 - usbtouchscreen (一)【转】
本文转载自:http://blog.csdn.net/jscese/article/details/41827495 最近需要往TV上装一个触摸屏设备,现在比较常见的就是使用usb接口的触摸框,适用于 ...
- 【Dairy】2016.10.30 BirthdayParty
今天又有人生日耶,鹏哥和骥哥两兄弟,Happy Birthday 开始听到这件事,我傻逼的想了一下,咦,这两人这么有缘,同一天生日...脑抽了... 小胖犇极缓音调来了首烟花易冷,劲啊! 发张什么图呢 ...
- MAMP/xampp安装redis
nmp/amp/xampp安装redis 一.安装redis服务 1.通过homebrew安装redis sudo brew install redis 2.启动redis服务,且接受客户端连接 su ...
- mysql将查询结果导出csv文件的方法into outfile
例句: select * from table_name into outfile '/tmp/tmp.csv' fields terminated by ','; 详解: ① into outf ...