zoukankan      html  css  js  c++  java
  • flask-模板使用

    flask-模板使用


    • 模板方法:
      • 模板中的url_for跟后台视图的url_for使用起来基本是一样的,也可以传递参数
        • 使用方式
          • {{ url_for('func') }}
    • 过滤器:
      • 过滤器是通过管道符号  |  进行使用的,例如: {{ name|length }}, 将返回name的长度。过滤器相当于一个函数,把当前的变量传递到过滤器中, 然后根据过滤器自己的判断。再返回相应的值,之后在将结果渲染。
      • 常用的内置过滤器:
        • abs(value) : 返回一个数值的绝对值。
          • -1|abs
        • default(value, default_value, boolean=false) : 如果当前的变量没有值,则使用参数中的值来代替。  name|default('ivy')  -- 如果name不存在,则使用ivy来代替。boolean=false默认是在这个变量为undefined的时候才会使用的default的值。当这个变量又被定义,但是这个变量为Flase(None , False, 及其各种数据类型的空类型)时,会返回相应的值,这时候只要将boolean=True,就会渲染默认的值。
        • or:
          • {{ value1 or value2 }}   和python自带的or一样。
        • escape(value)或e: 转义字符,会将 < 、> 等符号转义成html中的符号.
          • content|escape   或者 content|e
        • safe(value): 关闭自动转义
          • {{ content|safe }}
        • first(value)  返回一个序列的第一个元素。 name|first
        • format(value, *args, **kwargs) : 格式化字符串:
          • {{ "%s" - "%s"|format('hello', 'world') }}
        • last(value): 返回一个序列的最后一个元素
          • name|last
        • length(value)
          • name|length
        • join(value, format_key): 跟python的join一样
        • int(value): 转换为int整型
        • float(value): 转换为float类型
        • lower(value): 转换为小写
        • upper(upper): 转换为大写
        • replace(value, old, new): 字符串替换
        • truncate(value, length=255, killwords=False): 截取length长度的字符串
        • striptags(value): 删除字符串中的所有html标签,如果出现空格,将替换成一个空格
        • trim: 截取字符串前面和后面的空白字符串
        • 更多的过滤器:http://docs.jinkan.org/docs/jinja2/templates.html#builtin-filters
      • 自定义过滤器:
        • 过滤器本身是一个可以在模板中使用的函数,然后对传进来的参数做一定的处理返回给模板
        • 自定义的过滤器需要在flask中注册
        • 过滤器的第一个参数是使用过滤器的模板变量,过滤器的返回结果是过滤器的返回值。
        • 下面实现一个简单的性别转换的过滤器
        •  1 from flask import Flask, render_template
           2 
           3 app = Flask(__name__)
           4 
           5 
           6 @app.route('/')
           7 def index():
           8     context = {
           9         'sex': 1
          10     }
          11     return render_template('index.html', **context)
          12 
          13 
          14 @app.template_filter('sex_trans')
          15 def sex_trans(value):
          16     rote = {
          17         1: 'male',
          18         0: 'female'
          19     }
          20     return rote.get(value)
          21 
          22 
          23 if __name__ == '__main__':
          24     app.run()
    •  模板标签
      • {% autoescape off %} content  {% endautoescape  %}
        • 将content里面的内容取消转义
      • {%  if  ......   %} do something {% else %}   do  something  {% endid %}
        • 条件判断
      • {% for   sth  in sths %}    do something about  {{  sth }}   {%  endfor  %}
        • for 循环
        • for 循环可以接range函数
        • for 循环中配合使用
          • <!DOCTYPE html>
            <html lang="en">
            <head>
                <meta charset="UTF-8">
                <title>Title</title>
            </head>
            <body>
            {% for i in range(0,10) %}
                <p>{{ i }} - {{ loop.index }} - {{ loop.first }} - {{ loop.last }} - {{ loop.length }} - {{ loop.nextitem }}</p>
            {% endfor %}
            </body>
            </html>

          • loop.index:  返回该次for循环的次数,默认从1开始排序
          • loop.index0: 制定for循环从第几次开始排序,返回当次的次数
          • loop.first: 判断是否为第一次for循环,返回bool值
          • loop.last:
          • loop.length:返回for循环的总次数
          • loop.nextitem:返回for循环的下次的值
    • 加载静态文件
      • flask加载静态文件采用url_for函数
        • {{   url_for('static', filename='静态文件的路径')      }}
        • url_for的第一个参数是加载静态文件的文件夹的名字,默认为static, filename为你的静态资源相对static文件的相对路径。

        

  • 相关阅读:
    ☀【CSS3】形状
    ♫【MV*】
    ☀【布局】多栏布局 / 盒布局
    2017 无奈的模拟赛 1
    洛谷——P2093 零件分组
    洛谷——P1209 [USACO1.3]修理牛棚 Barn Repair
    洛谷——P2695 骑士的工作
    洛谷——P1330 封锁阳光大学
    python(16)- python内置函数
    MTK平台缩写
  • 原文地址:https://www.cnblogs.com/ivy-blogs/p/11507185.html
Copyright © 2011-2022 走看看