django 模板 (ああああああああ!かぴ)
一 常用
    1. {{ 不存在 | default : "xx" }}
    2. {{ name | length }}
    3. {{ xx | slice "1:-1" }}
    4. {{ now | date: "Y-m-d H:i:s" }}    now = datetime.now()
    5. {{ xx | truncatechars : x }}      截取文字
    6. {{ xx | truncatewords :  x }}      截取单词
	7. {% for k,v in d.item %}
           {{ k }} {{ v }}
     {% endfor %}
    8. {% for person in person_list %}
                 {{ person.name }}
        { % empty %}
               {{ xxx }}
   {% endfor %}
9.
{% for name in name_list %}<li class="{% if forloop.first %} 'sb' {% endif %}">
        {{ forloop.revcounter }} - {{ name }}</li>
{% endfor %}
forloop.counter             当前索引值默认从1开始
forloop.counter 0           从1开始
forloop.revcounter           倒序索引值默认以1结束
forloop.revcounter 0      以0结束
forloop.firs          是不是第一次循环
forloop.last
二 自定义
在app下建templatetags python package,再新建个py文件
mytags.py
from django import template
register = template.Library() # 注册 # 自定义filter
@register.filter(name="aki")
def multi(x, y):
return x*y
# 模板用法是 {{ num | aki:2}} num已经被指定为12, x是管道符前面的参数,y是后面的参数如 2 最多两个参数
# 注意上面的aki:2 :2 不能有空格,否则报参数个数的错误 # 自定义simple_tag
@register.simple_tag(name="desky")
def my_input(x, y, z):
return x*y*z
# 模板用法是 {% desky "x" "xo" "xoo"%} 可以定义多个参数 # 自定义inclusion_tag
@register.inclusion_tag('test.html')
def show_result(n):
n = 1 if n < 1 else int(n)
data = ["第{}项".format(i) for i in range(1, n+1)]
return {"data": data}
text.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title> </head>
<body>
{% load mytags %}
{% show_result 5 %}
{% desky 2 5 6%}
{{ num | aki:23 }}
{##}
</body>
</html>
test.html
<ul>
{% for choice in data %}
<li>{{ choice }}</li>
{% endfor %}
</ul>
几点说明
filter: 最多两个两个参数,可以进行逻辑判断,{% if i|multi > 1000 %} .....,还有千万注意{ num | aki:2}}不能有空格 引用是 {{}} simple_tag : 可以传多个参数,但不能进行逻辑判断,% desky "x" "xo" "xoo"%} 引用时 {%%}
inclusion_tag('xx.html'): 是将一段html 插入到哪里,这里是将test插入到text中,{% show_result 5 %} 要引用,还要将参数传递进去
最后说的是,新建的python package 必须叫templatetags, 别忘引入{% load mytags %}
django 模板 (ああああああああ!かぴ)的更多相关文章
- Django模板与Vue.js冲突问题
		参考: https://my.oschina.net/soarwilldo/blog/755984 方法1:修改vue.js的默认的绑定符号 Vue.config.delimiters = [&quo ... 
- 在 Django 模板中遍历复杂数据结构的关键是句点字符
		在 Django 模板中遍历复杂数据结构的关键是句点字符 ( . ). 实例二 mysit/templates/myhtml2.html修改如下 <!DOCTYPE html> <h ... 
- python django 模板
		1 用两个大括号括起来的文字{{person_name}} 称为变量 2 被 大括号和面分号包围的文件({% if ordered_warranty %})是模板标签 3 过滤器是用管道符(|) 和U ... 
- django 模板中定义临时列表
		<ul class="num_t clr"> {% for obj in ""|ljust:"10" %} <li> ... 
- Django 模板中引用静态资源(js,css等)
		Django 模板中免不了要用到一些js和CSS文件,查了很多网页,被弄得略晕乎,还是官网靠谱,给个链接大家可以自己看英文的. https://docs.djangoproject.com/en/1. ... 
- Django模板-分离的模板
		上一篇Django模板-在视图中使用模板最后的问题,我们需要把数据和展现分离开. 你可能首先考虑把模板保存在文件系统的某个位置并用 Python 内建的文件操作函数来读取文件内容. 假设文件保存在 E ... 
- Django模板-在视图中使用模板
		之前我们已经有了自己的视图mysite.views.py中,应该是这样子的 from django.http import HttpResponse import datetime def curre ... 
- Django模板-模板标签
		接着Django模板-基础知识继续写模板相关知识. if标签 {% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ). 但是不允许在同一个 ... 
- Django模板-基础知识
		上一篇中带参数的URLconf虽然可以做到传参动态显示内容,但是最终现实的内容还是硬编码到Python代码中的 def hours_ahead(request,phours): try: phours ... 
- 关于Django模板引擎的研究
		原创博文,转载请注明出处. 以前曾遇到过错误Reverse for ‘*’ with arguments '()' and keyword arguments' not found.1其原因是没有给视 ... 
随机推荐
- 《Clean Code》阅读笔记
			Chapter 2 命名 命名要表现意图 避免歧义和误导,增强区分 命名可读性:便于发音,增强印象,便于交流 命名可查性:增强区分,便于搜索 类和对象的命名:名词或名词短语 方法的命名:动词或动词短 ... 
- C# 在类中使用Timer定时器以及延时处理的方法
			我们平时在C#中要用到定时功能时,有自带定时器,一般在定时器里面写函数就行了,现在需要在类里面写了一个定时器,不和界面绑定,一开始的时候感觉没什么思路,然后看了一下界面的设计代码,有了思路,还是很简单 ... 
- Unity --- 如何简单的判断图片是否含有 alpha channel
			var texImporter = AssetImporter.GetAtPath(assetPath) as TextureImporter; if (texImporter.DoesSourceT ... 
- 【转】 glibc detected *** corrupted double-linked list:错误的原因有如下三种可能
			一个多线程的大程序运行的时候崩掉了,屏幕上打出这个: *** glibc detected *** corrupted double-linked list: 0xb78381d8 *** 三个原 ... 
- 自动生成CHANGELOG.md
			$ npm install -g conventional-changelog-cli $ cd my-project $ conventional-changelog -p angular -i C ... 
- sentinel详解
			https://segmentfault.com/a/1190000002680804 sentinel端口 port #工作路径 dir "/usr/local/redis-6380&qu ... 
- 【C#】【对象转XML】xml序列化
			笔记:xml序列化 /// <summary> /// xml序列化 /// </summary> /// <param nam ... 
- vue图片裁剪插件vue-cropper
			最近做后台管理,需要用到图片裁剪,这个组件很好用,记录一下. 工作太忙,就不总结了. 链接分享:https://github.com/xyxiao001/vue-cropper 
- Request中的各种地址
			今天来得匆忙,先上图吧,稍后再整理! 
- spiflash
			1.SPI Flash (即SPI Nor Flash)是Nor Flash的一种:2.NOR Flash根据数据传输的位数可以分为并行(Parallel)NOR Flash和串行(SPI)NOR F ... 
