天天看点

Flask中的Templates - zengsf

Flask中的Templates

1.什么是模板

  模板 , 在Flask 中就是允许响应给用户看的网页

  在模板中,允许包含"占位变量"来表示动态的内容

  模板最终也会被解析成字符串再响应给客户端,这一过程通常称为"渲染"

  Flask中的模板是依赖于 Jinja2 的模板系统

2.模板的设置

  默认情况下,Flask会在程序文件夹中的 templates 的子文件夹中搜索模板

  默认情况下,需要手动创建 templates 文件夹

3.模板的渲染

  作用:在视图中,将模板文件(xx.html)渲染成字符串之后,再响应给客户端浏览器

  使用与函数返回时:return render_template(\'xxx.html\')

4.模板中的语法

  1.变量:变量是一种特殊的占位符,告诉模板引擎该位置的值是从渲染模板时的数据中获取出来的。

   在视图中 :

   @app.route(\'/\')

   def index():

     return render_template(\'xxx.html\',变量1=值1,变量2=值2,..)

     return render_template(\'xxx.html\',name=\'laowang\',age=35)

   在模板中 :

     {{变量名}}

     例如:<h1>{{name}}</h1>

  2.过滤器

   1.什么是过滤器:过滤器是允许在变量输出前改变变量的值

   2.语法

    {{变量|过滤器}}

    Jinja2 模板中常见过滤器:

      过滤器名              说明

      capitalize    首字符变大写,其他变小写

      lower          将值转换为小写

      upper         将值转换为大写

      title             将值中的每个单词首字符变大写

      trim       去掉值两边的空格

@app.route(\'/02-var\')
def var():
    uname = "my name is zengsf"
    # 这里的locals()会把你所有的变量都封装成一个对象
    print(locals())
    return render_template(\'02-var.html\',params = locals())      

然后只需要去02-var.html文本中进行调用就可以了

<h1>capitalize:{{params.uname|capitalize}}</h1>      
Flask中的Templates - zengsf