1、渲染模板
需要先导入render_templatem模块,然后先在文件所在目录创建一文件夹,命名为templates,然后在文件夹中新建一个html网页文件。(渲染时框架会自动寻找网页文件,不必添加"templates"这个路径,这是由flask框架决定的)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
This is index Page !
</body>
</html>
直接返回渲染的index.html
#-*- coding:utf-8 -*-
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
if __name__ == "__main__":
app.run()
刷新网页可以看到渲染好的网页:
2、传参到网页显示
html中参数的传递需要用的是两个大括号{{}},并把参数写入其中。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
This is index Page !
<p>The word is {{ myword }}</p>
</body>
</html>
#-*- coding:utf-8 -*-
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html", myword = "I Love Flask !")
if __name__ == "__main__":
app.run()
刷新网页之后会得到:
但是一般不会在函数中输入很多的参数,因为这样很麻烦,所以一般会用字典的办法把参数传入:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
This is index Page !
<p>My name is {{ myname }}</p>
<p>The word is {{ myword }}</p>
</body>
</html>
使用字典时**context传入参数(很类似C++中的二级指针)
#-*- coding:utf-8 -*-
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
context = {
"myname":"GYZB",
"myword":"I Love Flask !"
}
return render_template("index.html", **context )
if __name__ == "__main__":
app.run()
刷新网页后得到:
如果字典中出现类对象或者字典,可以使用{{ params.property}},字典还可以用params[key]来访问key的值。