Flask基础02

2018-12-06  本文已影响0人  探索1者
给模板传递多个变量使用 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

  1. 变量

    能过作为变量的数据类型

    字符串,整数,小数,列表,元组,字典,对象

  2. 过滤器

    什么是过滤器
    过滤器是允许在变量输出之前按一定的规则改变变量的值

    语法:{{ 变量 | 过滤器 }}

    Jinja2模板中常见的过滤器:

    过滤器名 说明
    capitalize 首字符变大写,其他字符变小写
    lower 将值转换为小写字符
    upper 将值转换为大写字符
    title 将值中的每个单词的首字符变大写
    trim 去掉值两端的空格
  3. 标签

    什么是标签

    ​ 每个标签表示的是不同的服务器端的功能

常用标签
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 %}
  1. 静态文件的处理
    1. 什么是静态文件
      在Flask中不能与服务器动态交互的文件都是静态文件

    2. 在Flask中处理静态文件

      1. 所有的静态文件要放在 static 目录中
        static目录要位于项目的 根目录处内
      2. 所有的静态文件必须通过 /static/ 路径访问
        /static 表示的要到静态资源目录中继续搜索
上一篇下一篇

猜你喜欢

热点阅读