Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用Flask时,如何在HTML中使用和调用python函数?_Python_Html_Flask - Fatal编程技术网

在使用Flask时,如何在HTML中使用和调用python函数?

在使用Flask时,如何在HTML中使用和调用python函数?,python,html,flask,Python,Html,Flask,我是Flask的新手,尽管我已经阅读了文档,但我仍然对Python函数和HTML之间的关系感到非常困惑。具体来说,我不确定如何在HTML页面中调用函数。例如,我的route.py文件中有以下代码: from flask import Flask, render_template import requests app = Flask(__name__) @app.route('/placement_debugger') def placementDebugger(): return

我是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>

放置ID:

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

您可以使用
request
从html输入中获取数据

首先从烧瓶中导入

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

@app.route('/placement_debugger', methods=['GET', 'POST')
下面是如何从HMTL表单获取数据。(这将包含在get_data()函数中)


你不能直接这么做。您可以从网页的Javascript对get_data()函数进行REST调用,并获取返回数据。Python代码在web服务器上运行,HTML在客户机上运行——它们只能通过HTTP进行通信——一种无状态协议。请注意,
render\u template()
接受其他关键字参数作为上下文。这是将数据(而不是函数)传递到模板的方法。您可以使用Jinja2来实现这一点。但我不建议在你的情况下使用这个解决方案。正如克劳斯所说,通过
render\u template()
更好地传递变量。
if request.form:
    placement_id = request.form.get('Placement ID')