- django模板: templates
- 模板分为两个过程:
1, 加载 : loader.get_template('xxx.html') 返回值是一个template对象
2, 渲染 : template.render(context)
因为上诉过程过于麻烦,所以Django自己封装一个简单的方法:
return render(request,'xxx.html',context={})
- 过滤器:
{{变量名|过滤器}}
- 增减:add
{{对象.属性 | add : 5 }} 加5 对象.属性 得到必须是数字
{{对象.属性 | add : -5 }} 减5
- 大小写转换 lower / upper
{{对象.属性 | lower}} 转换为小写 对象.属性 得到必须是英文
{{对象.属性 | lower}} 转换为大写
- 连接过滤器:
{{ xxx_data | join:'='}}
- HTML转义----代码注入攻击
{{ str_data | safe }}
safe 出现就可以被js注入攻击
{% autoescape off %}
代码
{% endautoescape %}
off 出现就可以被js注入攻击
{% autoescape on%}
代码
{% endautoescape %}
on 出现不能被攻击
- 关键字block : 挖坑
{% block xxx %}
code
{% endblock %}
同步: 完成一件事情 得到返回时,接下来才能做另一件事情.
异步: 不用等待前一个事情的返回的response消息, 就可以做另外一件事情.
并发: 同时有很多请求在同一段时间发送 时间上重叠
并行: 即同时前进,是在一定条件下达到一种相辅相成,相互促进的关系。 一组程序按独立异步的速度执行,不等于时间上的重叠
- 继承
1, extends 继承的页面 写在开头位置 然后跟上{% extends '父模块路径' %}
{% extends 'xxx.html' %} 继承xxx页面
{% bliock header %} #填坑
{{ block.super }} // 调用肤洁面里面的block header
<h2> 我同意上面的观点 </h2> //这个是子界面的方法
{% endblock %}
2, include : 加载模块进行渲染 化零为整
{% include '模板文件 %}