欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Flask 模板(一)

程序员文章站 2022-09-26 18:38:56
使用模板有助于将业务逻辑与表现逻辑分开,更易于维护。模板是已经建立的网页代码,其中部分动态数据需要在请求的上下文中用具体值替换。 flask中使用了Jinja2模板引擎,储存在templates文件夹中。 使用 {{ name }} 占位 模板的渲染 模板的渲染即用真实值取代模板中的占位变量的过程。 ......

使用模板有助于将业务逻辑与表现逻辑分开,更易于维护。模板是已经建立的网页代码,其中部分动态数据需要在请求的上下文中用具体值替换。

flask中使用了Jinja2模板引擎,储存在templates文件夹中。

templates/index.html
<h1>Hello World!</h1>

使用 {{ name }} 占位

templates/user.html
<h1>Hello, {{ name }}!</h1>

 

模板的渲染

模板的渲染即用真实值取代模板中的占位变量的过程。

from flask import Flask,render_template
@app.route('/')
def index():
    return render_template('index.html',name=name)

变量可以从列表、字典和对象获取。

<p>A value from a dict:{{ mydict['key'] }}</p>
<p>A value from a list:{{ mylist[3] }}</p>
<p>A value from a list with a variable index:{{ mylist[intvar] }}</p>
<p>A value from a object's method :{{ myobj.mymethod() }}</p>

使用过滤器修改变量:

{{ name|capitalize }}

常用过滤器:

过滤器名 说明
safe 渲染时不转义
capitalize 首字母大写,其他小写
lower 小写
upper 大写
title 每个单词首字母大写
trim 去掉首尾空格
striptags 把值中所有html标签删掉

 

 

 

 

 

 

 

 

控制结构

 

{% if user %}
    Hello,{{ user }}
{% else %}
    Hello,Stranger!
{% endif %}

 

<ul>
    {% for comment in comments %}
        <li>{{ comment }}</li>
    {% endfor %}
</ul>