Flask渲染jinja2模板和传参:
1.如何渲染模板:
*模板放’template’文件夹下
**从flask中导入render_template函数
***在视图函数中使用’render_template‘函数,渲染模板,(注意:只需要填写模板的名字,不需要填写’render_template’这个文件夹的路径)
2.模板传参:
*如果只有一个挥着少量的参数,直接在‘render_template’函数中添加关键字参数就可以了。
*如果有多个参数,可以先把所有的参数放在字典中,然后在’render_template’中,使用两个星号,把字典转换成关键参数传递进去,这样的代码便于管理和维护。
3.在模板中,如果要使用一个变量,语法是:‘{{params}}’
4.访问模型中的属性或者字典,可以通过‘{{params.property}}’的形式,或者是使用‘{{params[‘xxx’]}}’的形式。
if判断:
1…html中使用语法:**
{% if xxx %}
{% else %}
{% endif %}
2.if的使用,和python中相差无几。
for循环遍历列表和字典:
1.字典的遍历,语法和python一样,可以使用‘items()’,‘keys()’,‘values()’,‘iteritems()’,‘iterkeys()’,‘itervalues()’。
实例代码:
{% for k,v in dict.items() %}
<标签>{{ k }}:{{ v }}</标签>
{% endfor %}
2.列表的遍历,语法和python一样。
实例代码:
{% for li in lists %}
<p>{{ li }}</p>
{% endfor %}
过滤器:
1.介绍和语法:
*介绍:过滤器可以处理变量,把原始的变量经过处理后再展示出来。作用的对象是变量。
*语法:
{{ avater|default(‘xxxx’)}}
2.default过滤器:
如果当前变量不存在,这时候可以指定默认值。
3.length过滤器:
求字符串或列表或字典或元组的长度。同len()函数
4.其他常用过滤器:
*capitalize:把变量值的首字母转成大写,其余字母转小写
*lower:把值转成小写
*upper:把值转成大写
*title:把值中的每个单词的首字母都转成大写
*reverse:字符串反转
*format:格式化输出
*truncate: 字符串截断
*first:取列表第一个元素
*last:取列表最后一个元素
*sum:列表求和
*sort:列表排序
继承和block
1.继承的作用和语法:
*作用:可以把一些公共的代码放在父模板中,避免每个模板写同样的代码。
*语法:{% extends ‘base.html’ %}
2.block实现:
*作用:可以让字模板实现一些自己的需求,父模板需要提前定义好接口。
*注意点:字模板中的代码,必须放在block块中。
url链接:
使用url_for(‘视图函数名称’),可以反转成url
加载静态文件:
1.语法:url_for(‘static’,filename=‘路径’)
2.静态文件,flask会从static文件夹中开始寻找,所以不需要再写’static‘这个路径了。
3.可以加载css文件,可以加载js文件,还有image文件。
4.例子:
'''加载css文件:
<link rel="stylesheet" href="{{ url_for('static',filename='css/index.css') }}">
加载js文件
<script src="{{ url_for('static',filename='js/index.js') }}"></script>
加载image文件
<img src="{{ url_for('static',filename='images/dog.jpg') }}">
'''