【问题标题】:Calling python functions in HTML file in Flask在 Flask 的 HTML 文件中调用 python 函数
【发布时间】:2012-07-21 06:48:56
【问题描述】:

我的 python 文件中有一个文件夹列表,在一个 HTML 文件中,我遍历列表以显示页面上每个文件夹的名称。

{% for folder in folders %}
<li><a href = {{folder}}> {{folder}}</a></li>
{% endfor %}

我想要做的是,当你点击文件夹时,它会做同样的事情,但在点击的文件夹内。我有一个函数open_folder,它接受一个参数(单击的文件夹名称),但我的问题是我真的不知道如何使用 HTML 文件中的参数调用该函数。我见过的很多页面或教程只有 python 文件。在我的主文件中,我也有路线

/<route>/

我是 Flask 的新手,只是想知道是否有人有示例说明如何执行此操作。将不胜感激。

【问题讨论】:

  • 我不清楚你的意思。我认为您应该做的是向采用文件夹名称的视图发出 POST 请求。如果您希望在不发出其他请求的情况下执行“open_folder”的操作,则需要在浏览器中使用 Javascript 进行处理。
  • 我认为我的 open_folder 方法应该在 post 方法中调用,但据我所知,您调用 post 方法,如 method = post ,我需要 post 来获取参数。我认为我可能遇到的问题是最后带有 的应用程序路由总是返回 404 错误,所以我认为我不知道如何正确使用它。如果我的解释不是最好的,我想弄清楚很多很抱歉。还是新的。但感谢您的帮助

标签: python html flask


【解决方案1】:

假设folder 是您希望将其内容作为其自己的页面动态返回的内容,执行此操作的适当方法是使用单独的路由和视图来处理文件夹。类似于以下内容:

@app.route("/folder/<folder_name>/")
def folder(folder_name):
    # do something with folder_name
    pass

在您的 HTML 中,您将链接到它,如下所示:

<a href="{% url_for('folder', folder_name=folder) %}">{{ folder }}</a>

显然您希望根据folder 的内容相应地更新路由,但这是链接到动态内容的“Flask 方式”。

【讨论】:

  • 谢谢!该链接实际上应该是

    而不是 {% %},至少这对我有用。
  • 没问题!我相信 Jinja {{ }} 用于输出值,{% %} 用于 Python 逻辑,例如 if 语句、循环和函数调用。万一意外使用{{ }},他们可能已经加倍保持优雅。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-09
  • 2017-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多