1 模板引入子html--include

 模板引擎
- 母版 - include,导入公共的html
a. 用法:{% include "pub.html" %}, pub.html还可以添加 {{ name }}
b. 一个页面可以导入多次,一个html只能有一个母版
c.样例
# public.html
<div class="public">
<div class="content">
{{ userinfo }}
</div>
</div> # app02_test.html
<h3>include</h3>
{% include "public.html" %}
{% include "public.html" %} # views
def test(request):
return render(request, 'app02_test.html', {'userinfo':{'k1':'v1', 'k2': 'v2'}})

2 模板使用(渲染数据 + 调用函数)

- 模板
- 接收被渲染数据
views参数传递:{'userInfo': {'k1': 'v1', 'k2':'v2'}}
前端接收可以
{% for v in userInfo.values %}
{% endfor %}
或者
{% for k,v in userInfo.items %}
{% endfor %}
或者
{% for k in userInfo.keys %}
{% endfor %} - 模板执行函数, 而且函数不是js函数,而是py里面的函数
a.{{ name|upper}} // name是后台传递给前端的带渲染数据,upper是转换大写函数

3 自定义函数,供模板调用

- 自定义模板filter
a.在应用创建文件夹templatetags
b.创建任意py文件, xx.py
from django import template
register = template.Library() @register.filter
def my_upper(value):
return value.upper()
c.在模板文件导入xx.py
开头导入 {% load xx %} d.在模板使用函数
{{ 'liuzhipeng'|my_upper}} ,前面的liuzhipeng为参数传递给my_upper e. 一定要注册app_02 - 自定义tag
a.在应用创建文件夹templatetags
b.创建任意py文件, xx.py
from django import template
register = template.Library() @register.simple_tag
def my_concat(arg1, arg2):
return arg1 + arg2
c.在模板文件导入xx.py
开头导入 {% load xx %} d.在模板使用函数tag
{% my_concat "alex" "is sb" %} e. 一定要注册app_02 - filter 和simple_tag区别
a. filter最多能有两个参数
b. filter模板调用方式: {{ 参数|函数}}
c. simple_tag参数个数无限制
d. simple_tag使用方式:{% 函数 参数 参数 %}
e. {% if name|my_bool %} 可以这样使用filter,而tag则不能
f. simple_tag反向生成url
{% url 'url别名' %}
g. 可以{% if name|my_bool %}, 但是simple_tag不行

最新文章

  1. SQL入门经典(六) 之视图
  2. Bootflat – 基于 Bootstrap CSS 框架的扁平化界面
  3. 关于 getWriter() has already been called for this response 的错误解决办法
  4. 分享几个Javascript 封装方法
  5. 关于“VS2010语法检查红线不见了”的解决方案
  6. boostrap按钮
  7. 在WPF中将某张表中的数据显示到datagrid
  8. Spring contextConfigLocation默认加载文件的位置
  9. BZOJ 3456: 城市规划 [多项式求逆元 组合数学 | 生成函数 多项式求ln]
  10. 学习linux笔记(不断更新)
  11. IntelliJ IDEA 使提示不区分大小写
  12. 老男孩python学习自修第十二天【常用模块之生成随机数】
  13. PP生产订单成本的计划、控制和结算
  14. Windows系统重装工具 WinToHDD Enterprise v2.8 企业破解版
  15. FI 业务
  16. i.MX6 u-boot 怎么确定板级头文件
  17. python.pandas read and write CSV file
  18. 在web.xml中配置404错误拦截
  19. 【C++】深度探索C++对象模型读书笔记--执行期语意学(Runtime Semantics)
  20. delphi7和XE下 获取路径

热门文章

  1. PHP实现文件上传和下载(单文件上传、多文件上传、多个单文件上传)(面向对象、面向过程)
  2. 为Visual Studio 2012添加MSDN离线帮助
  3. C语言exp()函数:e的次幂函数(以e为底的x次方值)
  4. 20.JSON
  5. Windows下配置Jmeter环境变量
  6. 操作文件 -------JavaScrip
  7. css布局:块级元素的居中
  8. Java程序设计第四次作业内容 第五次作业10月9号发布,为第三章全部例题
  9. Linux Shell 几个特殊符号命令 &amp; 、&amp;&amp; 、 ||
  10. mount: no medium found on /dev/sr0 找不到介质