flask框架jinja2模板与模板继承实例分析
本文实例讲述了flask框架jinja2模板与模板继承。分享给大家供大家参考,具体如下:
jinja2模板
fromwerkzeug.contrib.cacheimportSimpleCache
fromflaskimportFlask,request,render_template,redirect,abort,url_for
CACHE_TIME=300
cache=SimpleCache()
cache.timeout=CACHE_TIME
app=Flask(__name__)
@app.before_request
defreturn_cached():
ifnotrequest.values:
response=cache.get(request.path)
ifresponse:
print("Gotthepagefromcache!")
returnresponse
print("Willloadthepage!")
@app.after_request
defcache_response(response):
print("aaaaaaaaaaaaaaaaaaaaaa")
ifnotrequest.values:
cache.set(request.path,response,CACHE_TIME)
returnresponse
@app.teardown_request
defteardown_request(response):
print('llllllllllllllllllllllll')
return"llllllllllllllllllllll"
#@app.route('/')
@app.route('/get_index')
defindex():
returnrender_template('jinja2.html',a_variable="Developer",navigation=["http://www.163.com","www.baidu.com"])
if__name__=='__main__':
app.run(port=8000)
jinja2.html必须在templates文件夹下,例子如下:
jinja2_test {%foriteminnavigation%}#表达式 {{item}}#输出变量 {%endfor%} HelloWorld
{{a_variable}}#输出变量 {#aaaa#}#模板注释,加载自动删除
jinja2模板继承
父亲:
模板继承 这是基模板{%blockcontent%}{%endblock%}
用{%blockcontent%}{%endblock%}包含jinja2的字模板块;
子:
模板继承 {%extend"jinja2_模板继承.html"%} {%blockcontent%}我在子模板
{%extends"jinja2_模板继承.html"%}标签是这里的关键,告诉模板引擎这个模板继承自另外一个模板。该标签必须是子模板的第一个标签,解释器会自动将父亲的内容复制到子模板中!
结果应该是这样:
模板继承 这是基模板我在子模板
希望本文所述对大家基于flask框架的Python程序设计有所帮助。