【问题标题】:How can I use and call a python function within HTML while using Flask?使用 Flask 时如何在 HTML 中使用和调用 python 函数?
【发布时间】:2018-09-03 03:15:09
【问题描述】:

我是 Flask 的新手,尽管我已经阅读了文档,但我仍然对 Python 函数和 HTML 之间的关系感到非常困惑。具体来说,我不确定如何在 HTML 页面中调用函数。例如,我的 route.py 文件中有以下代码:

from flask import Flask, render_template
import requests
app = Flask(__name__) 

@app.route('/placement_debugger')
def placementDebugger():
    return render_template('placement_debugger.html')
def get_data():
    return requests.get('http://example.com'+placementID).content

这是我的“placement_debugger.html”文件中的代码。基本上,我试图从用户那里获取一个 ID 并在 HTTP GET 请求中使用该 ID:

<p1>
<form action="/action_page.php">
    <strong>Placement ID: </strong><input type="text" name="Placement ID" 
     value=""><br>
    <input type="submit" value="Submit">
</form>
</p1>

如何在“placement_debugger.html”页面中调用我的“get_data()”函数?

【问题讨论】:

  • 你不能直接这样做。您可以从您的网页从 Javascript 对 get_data() 函数进行 REST 调用并获取返回数据。 Python 代码在 Web 服务器上运行,而 HTML 在客户端机器上运行——它们只能通过 HTTP——一种无状态协议。
  • 请注意render_template() 接受额外的关键字参数作为上下文。这是将数据(不是函数)传递给模板的方式。
  • 你可以用 Jinja2 stackoverflow.com/questions/6036082/… 做到这一点。但我不建议在您的情况下使用此解决方案。正如克劳斯所说,更好地通过render_template() 传递变量。

标签: python html flask


【解决方案1】:

您可以使用request 从您的 HTML 输入中获取数据。

首先从烧瓶中导入

from flask import request

默认情况下,Flask 只允许 GET 请求。您需要允许 POST 方法进入您的路线。

@app.route('/placement_debugger', methods=['GET', 'POST')

您可以通过以下方式从 HMTL 表单中获取数据。 (这将进入您的 get_data() 函数)

if request.form:
    placement_id = request.form.get('Placement ID')    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-03
    • 2021-11-03
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 2020-09-21
    • 2019-05-01
    • 1970-01-01
    相关资源
    最近更新 更多