flask框架并没有实现自己的模板,而是使用Jinja2模板引擎,通过render_template函数返回一个html文件,这些html文件默认存储在项目根目录下的tempates文件夹中,这个目录是可以自定义的,创建Flask对象时,通过template_folder来设置。
from flask import Flask, render_template
app = Flask(__name__, template_folder='your_folder')
个人观点,使用模板,帮助我们解决了两个重要事情
一个网站有几百或上千个网页,它们每一个都可能有上千行html代码,这些代码有许多是相同的,或者说,这些网页可以共用一些代码。使用模板技术,可以将那些可共用的代码放在基础模板里,其他的网页可以继承这个基础模板,也可以用include的方式加载进来。
一个网站,同一个url,不同的人访问,显示的内容会不同,这些不同的内容可能是登录用户的个人信息,显然,不同的人有不同的信息,但所打开的网页url是相同的。想要实现这一点,可以使用ajax技术,前端页面通过ajax向后端发送请求,后端返回用户的具体信息。使用模板,则可以不必使用ajax在前端请求数据,在使用render_template返回html时,会将用户的信息一起返回,由模板引擎根据用户的信息对html进行渲染,以达到相同的效果。
由于我本人专注于后端开发,对于前端html,js等技术的了解不够深入,因此上面这两段内容均是我一家之言,如果有理解的不正确或是肤浅的地方,请各路大神指正。
下面的示例,我将向你展示如何使用这项技术,将后端的数据放到前端展示,下面是项目的结构示意
flask_demo/
├── __init__.py
├── app.py
└── templates
└── welcome.html
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/welcome')
def welcome():
return render_template('welcome.html', name='小明')
app.run(port=5500)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>北京欢迎你</title>
</head>
<body>
<p>北京欢迎你,</p>
</body>
</html>
运行app.py 脚本,服务启动后,在浏览器访问网址 http://127.0.0.1:5500/welcome, 你将看到如下的内容
北京欢迎你,小明
被小明替换, 这便是模板技术,当然,这只是最简单的应用,模板不只是能够进行一些变量的替换,还可以像写python代码一样在html写if 语句, for循环,进行更加复杂的操作,模板这个方向,我会专门写一章节的内容。
QQ交流群: 211426309