本文实例讲述了瓶框架jinja2模板与模板继承。分享给大家供大家参考,具体如下:
从werkzeug.contrib。缓存进口SimpleCache render_template,从进口瓶瓶,请求重定向,中止,url_for CACHE_TIME=300 缓存=SimpleCache () 缓存。timeout=CACHE_TIME 应用=瓶(__name__) @app.before_request def return_cached (): 如果不是request.values: 响应=cache.get (request.path) 如果响应: print(“从缓存页面了!”) 返回响应 打印(“将加载页面!”) @app.after_request def cache_response(反应): print (“aaaaaaaaaaaaaaaaaaaaaa”) 如果不是request.values: cache.set(请求。路径、响应CACHE_TIME) 返回响应 @app.teardown_request def teardown_request(反应): 打印(“llllllllllllllllllllllll”) 返回“llllllllllllllllllllll” # @app.route (“/? @app.route ('/get_index ') def指数(): 返回render_template (jinja2。html的,a_variable=翱⑷嗽薄?导航=[" http://www.163.com ", " www.baidu.com ")) if __name__==癬_main__”: app.run(端口=8000) >之前jinja2.html必须在模板文件夹下,例子如下:
& lt; !DOCTYPE html> & lt; html> & lt; head> & lt; title> jinja2_test & lt;/head> & lt; body> & lt; ul id=暗己健北? {%项导航%}#表达式 & lt;李href=' https://www.yisu.com/zixun/{{项}}在{{项}}& lt;/li>#输出变量 {% endfor %} & lt;/ul> & lt; h2> HelloWorld {{a_variable}} #输出变量 {# aaaa #} #模板注释,加载自动删除 & lt;/body> & lt;/html> >之前
父亲:
& lt; !DOCTYPE html> & lt; html> & lt; head> & lt; title>模板继承& lt;/title> & lt;/head> & lt; body> & lt; span>这是基模板& lt;/span> & lt; div id=澳谌荨痹趝%块内容%}{% endblock %} & lt;/div> & lt;/body> & lt;/html> >之前用<代码>{%块内容%}{% endblock %}> 代码包含jinja2的字模板块;
子:
& lt; !DOCTYPE html> & lt; html> & lt; head> & lt; title>模板继承& lt;/title> & lt;/head> & lt; body> {%扩展”jinja2_模板继承. html”%} {%块内容%} & lt; p class=" importtant”在我在子模板& lt;/p> & lt;/body> & lt;/html> >之前<代码>{%延伸”jinja2_模板继承. html”%}> 代码标签是这里的关键,告诉模板引擎这个模板继承自另外一个模板。该标签必须是子模板的第一个标签,解释器会自动将父亲的内容复制到子模板中!
结果应该是这样:
& lt; !DOCTYPE html> & lt; html> & lt; head> & lt; title>模板继承& lt;/title> & lt;/head> & lt; body> & lt; span>这是基模板& lt;/span> & lt; div id=澳谌荨痹? & lt; p class=" importtant”在我在子模板& lt;/p> & lt;/div> & lt;/body> & lt;/html> >之前希望本文所述对大家基于瓶框架的Python程序设计有所帮助。
瓶框架jinja2模板与模板继承实例分析