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程序设计有所帮助。