请关注公众号:自动化测试实战html
上一节咱们介绍了模板的基本使用方法,如今咱们想一个问题,若是把index.html
放到template
文件夹下面的文件夹该怎么办呢?其实很容易,当文件夹结构以下图所示时:flask
咱们只须要修改render_template
的值便可,代码以下:app
若是你在pycharm里面修改,pycharm会自动帮你改应用的代码的。post
如今来想另外一个问题,就是既然模板能够复用,那么它里面的内容确定不可能写死对吧,若是写成固定值那每一个页面的内容都成了同样的了,因此模板就须要写成变量的形式,经过给变量传值来修改模板对应的内容。在flask中,变量的写法是{{ 变量值 }}
这种两个大括号(又叫大胡须
)的形式。
如今咱们在主文件给一段字符串,而后想把它应用到.html
模板中,咱们该怎门办呢?根据render_template
的源码知道它还有第二个参数——关键字参数**context
,因此咱们知道只须要给它传一个关键字参数便可,加上刚才的大胡须传递变量,咱们来看一段代码:测试
templateDemo.py
文件spa
# coding: utf-8
from flask import Flask, render_template app = Flask(__name__) # type: Flask
app.debug = True
@app.route('/')
def hello_world(): title = u'首页内容' return render_template('post/index.html', title=title)
if __name__ == '__main__': app.run()
index.html
文件debug
<!DOCTYPE html>
<html lang="en">
<head> <meta charset="UTF-8"> <title>这里是title</title>
</head>
<body> <h1>{{ title }}</h1>
</body>
</html>
如今来执行代码,而后去页面查看:code
咱们看到title
的内容已经在页面上显示出来了。htm
这是模板引用变量的最简单的一个例子。utf-8
如今咱们来渲染一个字典(就是传值为字典,专业术语叫渲染,记住了):
# coding: utf-8
from flask import Flask, render_template app = Flask(__name__) # type: Flask
app.debug = True
@app.route('/')
def hello_world(): title = {"name": "Warren",
"age": 18,
"gender": "male"}
return render_template('post/index.html', title=title)
if __name__ == '__main__': app.run()
执行代码后看到页面直接显示了字典title的内容:
若是咱们如今只想取字典里name
的值呢?那么我只须要修改index.html
里面的内容便可:index.html
文件
<!DOCTYPE html>
<html lang="en">
<head> <meta charset="UTF-8"> <title>这里是title</title>
</head>
<body> <h1>{{ title.name }}</h1>
</body>
</html>
能够看到,取值的方式就是title.name
便可。
请关注公众号:自动化测试实战