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其原因是没有给视 ...
随机推荐
- 牛客OI周赛9-提高组题目记录
牛客OI周赛9-提高组题目记录 昨天晚上做了这一套比赛,觉得题目质量挺高,而且有一些非常有趣而且非常清奇的脑回路在里边,于是记录在此. T1: 扫雷 题目链接 设 \(f_i\) 表示扫到第 \(i\ ...
- ubuntu安装nvidia显卡驱动
朋友挖矿,需要给Ubuntu(16.04版本)系统安装nvidia的显卡驱动,请我帮忙.最开始是进行手动安装.无奈的是安装完后进不了图形化界面.今天正好有时间,找了个硬盘装了个Ubuntu进行测试,成 ...
- Jmeter接口测试实例
此文章作为工作中用到的jmeter接口测试相关内容简述,方便日后查阅参考,如有理解描述有误之处,欢迎指出. 首先Jmeter环境准备网上有很多教程,在此不多做赘述: 1.接口简述 接口可理解为从客户端 ...
- 解决来自美国IP的攻击过程
1.因为最近接口文档confluence服务总是自动关闭. 解决方法: 1.查看阿里云上的报警提示,看到来自外国的Ip的攻击.这时我选择把攻击的IP加入黑名单. 加入黑名单的方法:https:// ...
- Java多线程之volatile关键字《一》
关键字volatile的主要作用是使变量在多个线程间可见. 1.关键字volatile与死循环 如果不是在多继承的情况下,使用继承Thread类和实现Runnable接口在取得程序运行的结果上并没有什 ...
- linux命令 常用
1.linux手动连接主机ssh '主机地址' 2.编辑 vi 查看i 编辑esc 退出编辑:wq 保存退出:q 直接退出 3. linux 防火墙 centOS7 firewall-cmd --sa ...
- R代码展示各种统计学分布 | 生物信息学举例
二项分布 | Binomial distribution 泊松分布 | Poisson Distribution 正态分布 | Normal Distribution | Gaussian distr ...
- mysql创建新用户出现错误处理
心血来潮创建一个新用户,结果...步步艰难啊,好在最后成功,把我出现的问题和解决方案抛出来,希望大家顺顺利利创建成功┗|`O′|┛ 嗷~~ 我出现的错误主要有这三种: 1.ERROR 1064 (42 ...
- github项目上传与克隆
1. 先去git官网https://git-scm.com/下载git: 2. 桌面新建文件夹,例如project,文件夹中新建任意文件例如index.html: 3. 打开文件夹,按住shift+右 ...
- 简单的python购物车
这几天,一直在学python,跟着视频老师做了一个比较简单的python购物车,感觉不错,分享一下 products = [['Iphone8',6888],['MacPro ...