Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.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
如何将HTML表单输入传递到Python脚本?_Python_Html - Fatal编程技术网

如何将HTML表单输入传递到Python脚本?

如何将HTML表单输入传递到Python脚本?,python,html,Python,Html,我有这样的表单标签 <form name="input_form" action="/test.py" method="get"> Set Frequency: <input type="number" name="set_freq" id="set_freq"> <br> <input type="submi

我有这样的表单标签

<form name="input_form" action="/test.py" method="get">
    Set Frequency: <input type="number" name="set_freq" id="set_freq"> <br>
    <input type="submit" value="Submit" />
    <input id="reset" type="reset" value="Reset" /><br>
</form>

设置频率:


我需要让它在哪里,用户输入1500或任何值,然后一旦点击submit,这个数字就立即传递给python程序test.py。

实现这一点的方法不止一种,您可以使用CGI(调用python脚本并提供输出的Web服务器)或类似Django或Flask的WSGI框架,或者其他方法。当然,也需要从“典型”的Web服务器(如apache或Nginx)或Gunicorn等提供服务

我的建议是使用类似Flask的框架来完成该任务

通过运行安装,最好在虚拟环境中:

pip install flask
然后你可以写一些简单的东西,比如

from flask import Flask, request, render_template 
  
# Flask constructor
app = Flask(__name__)   
  
# A decorator used to tell the application
# which URL is associated function
@app.route('/test.py', methods =["GET", "POST"])
def get_freq():
    if request.method == "POST":
       # getting input with freq = set_freq in HTML form
       freq = request.form.get("set_freq") # <--- do whatever you want with that value
       return "Your freq value is " + freq
    return render_template("form.html")
  
if __name__=='__main__':
   app.run()

你试过了吗?烧瓶会让这一切变得简单很多……我认为烧瓶会让一切变得更糟、更困难!可以说有很多更好的Web服务器,比如我试过的flask,是的,它似乎只是导致了很多问题。我试过使用cgi,但也没有成功。谢谢你的回答,我很感激。因此,当我运行并填充set_freq变量时,如何从那里获得它?我有一个API要使用,我会在那个API中添加这个吗?或者这是一个独立的常设程序?@luke您运行脚本,它应该在后台运行,然后当您提交表单时,脚本将在我注释的行中获取您的值,我通过
使用该值做任何您想做的事
。这一行只需打印您可以执行任何其他操作的值。请检查代码。此外,我更新了我的答案,以参考Flask教程,以便在您决定使用推荐的方法时使用。此外,您可以分享更多关于您在test.py中使用的实际代码的信息,这样我可以进一步帮助您,或者如果您有任何疑问,请不要犹豫,在下面发表评论。非常感谢您的解释,非常棒,您是最好的。我很感激@卢克很高兴我帮了忙。为了完整起见,我再次更新了答案。同时,如果此答案满足您的需求,请将其标记为已接受答案。