flask中 render_template如何使用


flask中 render_template如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们之前的视图函数,返回的都是简单的'Hello Wolrd'之类的字符串,怎么返回一个html呢?首先我们在templates文件夹建立一个html文件,内容随便写一点如下:我们可以使用Flask对象appsend_static_file方法,使视图函数返回一个静态的html文件,但现在我们不使用这种方法,而是使用flaskrender_template函数,它功能更强大。
flask中导入render_template,整体代码如下:render_template函数会自动在templates文件夹中找到对应的html,因此我们不用写完整的html文件路径。用浏览器访问'/'这个地址,显示结果如下:那么为何称之为模板呢?因为render_template不仅能渲染静态的html文件,也能传递参数给html,使一个html模板根据参数的不同显示不同的内容,这是因为flask使用了jinja2这个模板引擎。要使用模板,在render_template参数中以key=value形式传入变量,在html中使用{
{key}}
来显示传入的变量,例如:浏览器显示的结果与上文是一样的。我们还可以直接把一个类的实例传递过去,并在模板中访问类的属性,例如假设一个类对象objab属性,关键部分的代码如下:a:{

{object.a}}b:{

{object.b}}传入一个字典也可以,并且在模板中既可以用dict[key],也可以用dict.key。使用过滤器,可以在html中对传入的 香港云主机变量进行处理,其格式是{
{ 变量 | 过滤器 }}
,例如将前文的{
{ contents }}
修改为{
{ contents | upper}}
,浏览器显示的内容就变成了:所以我们可以很容易就理解,过滤器其实就是以变量为参数的函数,返回处理后的结果,在后端一样可以先用字符串对象的upper()函数处理好再传递给模板,效果是完全一样的。jinja2自带了一些过滤器,例如length/reverse/lower等等 ,并且我们也可以自己按照需求自定义过滤器,模板还支持{
{ 变量 | 过滤器1 | 过滤器2 | ... }}
这样的操作。想要深入了解的话,可以搜索jinja2过滤器去进一步学习。模板中还可以使用if elsefor in控制语句,与变量使用{
{ }}
不同,控制语句要放在{% %}里,例如前文的contents传入一个list:html中代码如下:使用for遍历contents的内容,并用{
{ i }}
显示出来,同时还用{# #}加了一个注释,还要注意需要使用{% endfor %}来提示循环区域的结束,因为html不像python那样通过缩进来判断循环的区域,if也是同理。浏览器显示结果:最后forif结合使用:
{%ifi%2==0%}
{

{i}}是偶数{#注意i也要用两个大括号#}
{%else%}
{

{i}}是奇数
{%endif%}
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注开发云行业资讯频道,感谢您对开发云的支持。

相关推荐: PHP的redis持久化机制是什么

本文小编为大家详细介绍“PHP的redis持久化机制是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP的redis持久化机制是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。redis持久化机制,将内存中的数据存储到硬盘…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/29 12:18
Next 07/29 16:20

相关推荐