给模板传递多个变量使用 locals()
@app.route('/01-homework')
def index():
# dic = {
# 'title': '橄榄树',
# 'author': '羽凡',
# 'music': '奶量',
# 'singer': '宝强',
#
# }
title = '橄榄树'
author = '羽凡'
music = '奶量'
singer = '宝强'
# 使用locals方法来自动生成字典
print(locals())
str = render_template('01-homework.html', params=locals())
return str
模板 - Templates
-
变量
能过作为变量的数据类型
字符串,整数,小数,列表,元组,字典,对象
-
过滤器
什么是过滤器
过滤器是允许在变量输出之前按一定的规则改变变量的值语法:{{ 变量 | 过滤器 }}
Jinja2模板中常见的过滤器:
过滤器名 说明 capitalize 首字符变大写,其他字符变小写 lower 将值转换为小写字符 upper 将值转换为大写字符 title 将值中的每个单词的首字符变大写 trim 去掉值两端的空格 -
标签
什么是标签
每个标签表示的是不同的服务器端的功能
常用标签
if 标签
基本if结构
{% if 条件 %}
{% end if %}
if-else结构
{% if 条件 %}
{% else %}
{% end if %}
if - elif 结构
for标签
{% for 变量 in 列表|元组|字典 %}
{% endfor %}
内置变量: loop
只能在for循环标签中使用
不用声明直接使用
作用:记录本次循环的一些信息
loop中的 常用属性:
1. index
作用:记录当前循环的次数,从1开始计算
2. index0
作用: 同上,从0开始计算
3. first
作用:表示当前的循环是否为第一次循环
True: 表示为第一次循环
False: 表示不是第一次 循环
4. last:
作用:表示当前的循环是否为最后一次循环
macro 标签(宏)
作用:相当于在模板中声明一个函数,可以修饰变量
语法: {% macro %}...{% endmacro %}
声明宏:
{% macro 函数名(参数列表) %}
{% endmacro %}
使用宏:{{宏名称(参数列表)}}
在独立的模板文件中声明所有的宏
1. 创建macro.html 模板文件
作用: 定义项目中要用到的所有的宏
2. 在使用宏的模板上,导入 macro.html
{% import 'macro.html' as ms %}
<!--声明宏: 接收一个字符串作为参数,将参数放p中打印输出-->
{% macro showP(str) %}
<h3>使用宏显示的内容:</h3>
<p>{{str}}</p>
{% endmacro %}
<!--使用宏-->
<div>
{% for name in params.list %}
<!--可以用宏来修饰 变量 -->
{{showP(name)}}
{% endfor %}
</div>
<!--引入外部的宏-->
{% import 'macros.html' as ms %}
{% for name in params.list %}
{{ms.show_p(name)}}
{% endfor %}
-
静态文件的处理
-
什么是静态文件
在Flask中不能与服务器动态交互的文件都是静态文件 -
在Flask中处理静态文件
- 所有的静态文件要放在 static 目录中
static目录要位于项目的 根目录处内 - 所有的静态文件必须通过 /static/ 路径访问
/static 表示的要到静态资源目录中继续搜索
- 所有的静态文件要放在 static 目录中
-
网友评论