我有一个带有三个 slider 的 javascript 表单,用户可以在其中选择三个不同的值:
<form action="submit.php">
<div class="container">
<div class="slidecontainer">
<input type="range" min="0" max="100" value="50" class="slider" id="red">
</div>
<div class="slidecontainer">
<input type="range" min="0" max="100" value="50" class="slider" id="green">
</div>
<div class="slidecontainer">
<input type="range" min="0" max="100" value="50" class="slider" id="blue">
</div>
<button type="submit" class="button">Submit</button>
</div>
</div>
</form>
我想将所有三个值(红色、绿色、蓝色)传递给 python,这样我就可以在同一台计算机上将它们与其他代码一起使用。我尝试使用 ajax 和我看到的示例 here ,但我认为我提交的表单不正确。我如何发布数据而不是调用 submit.php,以便我可以用 python 读取它?
最佳答案
简单。使用 Cherrypy
把它放在一个文件中(比如 main.py):
import random
import string
import cherrypy
class StringGenerator(object):
@cherrypy.expose
def index(self):
return """<html>
<head></head>
<body>
<form name="search" action="/home" method="get">
Search: <input type="text" name="box">
<input type="submit" value="Submit">
<div class="container">
<div class="slidecontainer">
<input type="range" min="0" max="100" value="50" class="slider" id="red">
</div>
<div class="slidecontainer">
<input type="range" min="0" max="100" value="50" class="slider" id="green">
</div>
<div class="slidecontainer">
<input type="range" min="0" max="100" value="50" class="slider" id="blue">
</div>
<button type="submit" class="button">Submit</button>
</div>
</div>
</form>
</body>
</html>"""
@cherrypy.expose
def generate(self, length=8):
return ''.join(random.sample(string.hexdigits, int(length)))
@cherrypy.expose
def home(self, box):
print("You've entered in the form: "+ str(box))
return "THANKS"
if __name__ == '__main__':
cherrypy.quickstart(StringGenerator())
然后在终端中:
python main.py
然后转到:http://127.0.0.1:8080并在您单击提交(我添加到您的代码的搜索框旁边的那个)时看到神奇的事情发生:
You've entered in the form: I entered something in the form...
我随便粘贴了文档中的示例(并进行了调整以更适合您的代码)。除了
pip install cherrypy
您真的没有别的事可做就可以开始了。到目前为止,在 python imo 中制作网络服务器的最简单方法。
本质上,当你这样做的时候
@cherrypy.expose
该方法的名称变为 https://127.0.0.1:8080/my_new_endpoint
您可以轻松地将内容提供给不同的端点并传递参数(如图所示)。所以你可以很容易地添加新的点。有关详细信息,请参阅文档。
玩得开心!
关于javascript - 如何将变量从 javascript 表单传递给 python(在同一台计算机上)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57318733/