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其原因是没有给视 ...
随机推荐
- VUE之图表操作
参考 v-charts文档有详细说明,不多做介绍. 感谢博主的梳理,我在此基础之上稍作修改 效果展示: 在工作中遇到了就记录下来,留作备用,以便今后查阅: 安装 npm install vue-sch ...
- leetcode算法题01
最近求职需要重新刷算法题,从今天开始每天至少做一个leatcode的题 如果有更好的算法或者换了语言也会更新 题目: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只 ...
- Antd Select组件结合使用出现must set key for <rc-animate> children问题
一.以下情况可能导致错误发生 出现这个问题的首要条件是因为Select的mode 设置成multiple or tags 1. Select的defaultValue使用了空字符串 例如: const ...
- H5外包团队:使用HTML5播放短视频代码分享
滑动代码 /** * 滑动处理 */ function Touch() { this.init(); } Touch.fn = Touch.prototype; Touch.fn.init = fun ...
- javaScript--animate函数
一.思路 1.获取目标值 2.再获取初始值 3.得到总距离 4.定义定时器的执行间隔 5.获取时间 6.得到总次数 7.总距离/总次数 = 步长 8.使用setInterval不停地改变dom元素的每 ...
- Kotlin 继承
Kotlin 中所有类都继承该 Any 类,它是所有类的超类,对于没有超类型声明的类是默认超类: class Example // 从 Any 隐式继承 Any 默认提供了三个函数: equals() ...
- JavaScript如何生成思维导图(mindmap)
JavaScript如何生成思维导图(mindmap) 一.总结 一句话总结:可以直接用gojs gojs 二.一个用JavaScript生成思维导图(mindmap)的github repo(转) ...
- BUAAOO-First-Summary
目录 homework & class & trainning : 两次上机.三次作业.四周课堂 code analysis & review : 为什么我没有bug 黑盒测试 ...
- img标签和 background 属性的使用分析
在网页布局中引入图片,最常用的两个就是 img 标签和 background 属性了.但何时使用 img 标签,何时使用 backround 背景图像呢? <img> 标签定义 HTML ...
- 使用jsdelivr访问github资源
一.新建github库并使用git上传 首先访问https://github.com 新建自己的库 之后使用 git 上传到github 下载git : https://git-for-windows ...