创新互联Flask教程:Flask模板

在前面的实例中,视图函数的主要作用是生成请求的响应,这是最简单的请求。

目前创新互联建站已为千余家的企业提供了网站建设、域名、虚拟空间、绵阳服务器托管、企业网站设计、梁子湖网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

视图函数有两个作用:

  • 处理业务逻辑
  • 返回响应内容

在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本.

  • 模板其实是一个包含响应文本的文件,其中用占位符(变量)表示动态部分,告诉模板引擎其具体的值需要从使用的数据中获取
  • 使用真实值替换变量,再返回最终得到的字符串,这个过程称为'渲染'
  • Flask 是使用 Jinja2 这个模板引擎来渲染模板

使用模板的好处

  • 视图函数只负责业务逻辑和数据处理(业务逻辑方面)
  • 而模板则取到视图函数的数据结果进行展示(视图展示方面)
  • 代码结构清晰,耦合度低

模板基本使用

在项目下创建 templates 文件夹,用于存放所有模板文件,并在目录下创建一个模板文件 html 文件 hello.html




    
    Title


我的模板html内容

创建视图函数,将该模板内容进行渲染返回

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
return render_template('hello.html')

模板变量

代码中传入字符串,列表,字典到模板中

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
# 往模板中传入的数据
my_str = 'Hello Word'
my_int = 10
my_array = [3, 4, 2, 1, 7, 9]
my_dict = {
'name': 'xiaoming',
'age': 18
}
return render_template('hello.html',
my_str=my_str,
my_int=my_int,
my_array=my_array,
my_dict=my_dict
)

模板中代码




  
  Title


  我的模板html内容
  
{{ my_str }}
{{ my_int }}
{{ my_array }}
{{ my_dict }}

运行效果

我的模板html内容
Hello Word
10
[3, 4, 2, 1, 7, 9]
{'name': 'xiaoming', 'age': 18}

示例代码:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
my_int = 18
my_str = 'curry'
my_list = [1, 5, 4, 3, 2]
my_dict = {
'name': 'durant',
'age': 28
}

# render_template方法:渲染模板
# 参数1: 模板名称 参数n: 传到模板里的数据
return render_template('hello.html',
my_int=my_int,
my_str=my_str,
my_list=my_list,
my_dict=my_dict)


if __name__ == '__main__':
app.run(debug=True)





Title



我是模板


{{ my_int }}


{{ my_str }}


{{ my_list }}


{{ my_dict }}


模板的list数据获取




{{ my_list[0] }}


{{ my_list.1 }}


字典数据获取




{{ my_dict['name'] }}


{{ my_dict.age }}


算术运算




{{ my_list.0 + 10 }}


{{ my_list[0] + my_list.1 }}


当前名称:创新互联Flask教程:Flask模板
地址分享:http://www.hantingmc.com/qtweb/news6/262606.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联