您的位置:首页 > 编程语言 > Python开发

python-flask框架学习笔记(二)--templates(模板)

2019-04-16 19:48 351 查看

模板就是指能够呈现给用户去看的网页结构,在flask项目中,要求创建一个叫templates的文件夹,用来存放前端的文件
Flask的模板是以来与Jinja2的模板引擎,Jinja2官网:http://jinja.pocoo.org/
*怎样更改模板文件夹的名字请看学习笔记(一)
还是先看一个示例
这是flask代码段

from flask import Flask,render_template

app = Flask(__name__)

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

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

这是f1.html代码段

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>这是f1的路由渲染到的网址:f1.html</h1>
</body>
</html>

运行代码段,打开浏览器输入localhost:5000/f1,会得到如下结果

2.渲染模板的时候是可以传参的
示例:
flask代码段

from flask import Flask,render_template

app = Flask(__name__)

@app.route('/f1')
def f1():
return render_template('f1.html',name='Xiaomin',hometown='Chengdu')

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

html代码段

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>{{name}} comes from {{hometown}}</h1>
</body>
</html>

运行结果

语法:传参是只需要在’xxx.html’后面跟上变量名=变量值,多个变量用,隔开即可。传递的参数可以是字符串,数值,列表,字典等。
如果是字符串数值等在html文件中使用时用{{}}把变量名括起来即可
如果是列表可以使用

{% for x in list %}
表达式
{% endfor %}

类似的方法还有
{% if %}
{% elif %}
{% else %}
{% endif %}

3.模板的继承
1.在父模板中需要定义出哪些内容在子模板中是可以被重写的(默认是不能改的),意思是在父模板中可以正常显示,没任何影响,另外在子模板中是可以被重写的
语法:
{% block 块名 %}
定义在父模板中正常显示的内容
{% endblock %}

2.子模板中需要指定继承自哪个模板
语法:
{% extends ‘父模板名称’ %}
重写父模板中指定的内容
{% block 块名 %}
此处代码会覆盖掉父模板中同名的block内容
{% endblock %}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: