如何在flask的模板文件中使用python3自定义函数?

萨索里

在flask中,html文件存储在/templates目录内。我对这个微框架和python3还是陌生的。在我的主要python代码中,我有一个功能,例如

""" this is the function that I need to use wihtin the html template below"""
def get_status(statusNum):
      if statusNum == 1:
           return 'active'
      if statusNum == 0:
           return 'inactive'


"""this is the function that renders the html"""
@app.route('/')
def index():
    render_template('index.html')

然后在index.html中,我有这个简单的代码,例如

<html>
<head><title>My Page</title></head>
<body>
<ul>
{% for listing in listings %}
    <li>{{listing.status_num}}</li>
{% endfor %}
</ul>
</body>
</html>

这个listing.status_num值是1或0,为了让我显示“ active”或“ inactive”之类的文本,我想在html模板中使用像这样的python函数,如get_status(listing.status_num)。那有可能吗?如何在Flask HTML模板内正确使用python函数?

丹·萨菲|

是的,有多种方法可以解决此问题。

用例的第一个也是最简单的就是使用提供的Jinja2选项在模板本身中进行检查。

<html>
<head><title>My Page</title></head>
<body>
<ul>
{% for listing in listings %}
    <li>
        {% if listing.status_num == 1 %}
            active
        {% elif listing.status_num == 0 %}
            inactive
        {% endif %}
    </li>
{% endfor %}
</ul>
</body>
</html>

另一个选择是将上下文处理器添加到您的应用程序。上下文处理器自动将新变量注入模板的上下文中,并在呈现模板之前运行。

@app.context_processor
def utility_processor():
    def get_status(statusNum):
        if statusNum == 1:
            return 'active'
        if statusNum == 0:
            return 'inactive'
    return dict(get_status=get_status)

然后可以在模板中使用它,如下所示:

<html>
<head><title>My Page</title></head>
<body>
<ul>
{% for listing in listings %}
    <li>
        {{ get_status(listing.status_num) }}
    </li>
{% endfor %}
</ul>
</body>
</html>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在模板中使用自定义元素?

如何在Swagger中使用自定义模板

如何在TabControl模板中使用自定义TabItem?

如何在python3中使用错误消息和状态代码创建自定义异常

如何在自定义函数中使用ddply + summary

如何在此代码中使用自定义函数?

如何在JPA查询中使用自定义函数?

如何在mxnet中使用自定义损失函数?

如何在mutate(dplyr)中使用自定义函数?

如何在ArrayFormula中使用自定义函数

如何在 reducer 或自定义函数中使用 netinfo

如何在Python Django Shell中使用自定义模块中的函数

如何在Tensorflow中使用自定义python函数预取数据

如何在python中使用自定义均值,中位数,众数函数和2500数组?

如何在Python中使用自定义谓词排序

如何在torchscript中使用自定义python对象

如何在Python 3中使用自定义比较功能?

如何在Python3中从文本文件获取和创建自定义变量?

如何在joomla 2.5中使用ajax在自定义模块的帮助文件中调用函数?

在Cakephp 3中使用“ radioContainer”的自定义模板

如何在Hugo中使用自定义输出格式创建易于打印的模板

如何在电子邮件模板中使用自定义 mailgun 变量?

我如何在Zim Wiki中使用自定义模板?

如何在电子邮件模板中使用自定义字体

如何在bookdown :: gitbook中使用自定义pandoc HTML模板

如何在Angucomplete-alt中使用自定义模板?

Liferay 7.3:如何在页面模板中使用自定义 ADT?

如何自定义Flask Admin模板?

如何在自定义jquery函数中使用this的值以使函数输出数据