Jinja2:Flask应用中的高效模板引擎
Jinja2是一个纯Python编写的模板引擎,它提供了一种类似Django的非XML语法,同时支持内联表达式和可选的沙箱环境。它小巧快速,易于使用,是一个独立的模板引擎。Flask是一个基于Python的微型web框架,它允许您快速高效地编写web应用程序。
本系列教程将从Flask的角度出发,讲解Jinja2模板的基础知识。后续部分将介绍高级模板主题,并学习如何在基于Flask的应用程序中以模块化和可扩展的方式布局模板。
本教程假设您已掌握Flask基础知识,并了解使用virtualenv进行Python应用程序开发的环境设置最佳实践。
安装包
Flask自带Jinja2,因此我们只需要安装Flask即可。本系列教程建议使用Flask的开发版本,它包含更稳定的命令行支持,以及许多其他功能和改进。
pip install https://github.com/mitsuhiko/flask/tarball/master
为什么需要模板引擎?
在Flask中,我们可以在无需任何第三方模板引擎的情况下编写完整的web应用程序。让我们来看一个简单的if、else和{% %}
块的例子。更新home.html
页面如下:
flask_app/templates/home.html
{% extends 'base.html' %} {% block container %} <div class="top-pad"> {% for id, product in products.items() %} <div class="well"> <h2> <a href="https://www.php.cn/link/0bbfd30c6d7efe2fff86061e79c010db'product', key=id) }}">{{product['name']}}</a> <small>$ {{ product['price']}}</small> </h2> </div> {% endfor %} </div> {% endblock %}
观察这个模板如何扩展上层过滤器,如下所示:
{% extends 'base.html' %} {% block container %} <div class="top-pad"> {% for id, product in products.items() %} <div class="well"> <h2> <a href="https://www.php.cn/link/0bbfd30c6d7efe2fff86061e79c010db'product', key=id) }}">{{product['name']|upper}}</a> <small>$ {{ product['price']}}</small> </h2> </div> {% endfor %} </div> {% endblock %}
现在,如果您运行服务器,您应该会注意到产品名称全部大写。
总结
在本教程中,我们学习了如何在基于Flask的应用程序中使用Jinja2布局模板结构。我们还了解了如何使用块在模板中利用继承。
在本系列的下一部分中,我们将学习如何编写自定义过滤器、自定义上下文处理器和宏。
此文章已更新,并包含来自Esther Vaati的贡献。Esther是Envato Tuts 的软件开发人员和撰稿人。
以上是用瓶中的jinja2模板:要点的详细内容。更多信息请关注PHP中文网其他相关文章!

重构自己的代码看起来是什么样的?约翰·瑞亚(John Rhea)挑选了他写的一个旧的CSS动画,并介绍了优化它的思维过程。

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingmatematingmultationmatingMultationPropertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用BombingingWithjavofofofofofoffo

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他们可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑战挑战InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)创造性

使用滚动阴影,尤其是对于移动设备,是克里斯以前涵盖的一个微妙的UX。杰夫(Geoff)涵盖了一种使用动画限制属性的新方法。这是另一种方式。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3汉化版
中文版,非常好用

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中