javascript - 如何将变量从 javascript 表单传递给 python(在同一台计算机上)?

标签 javascript python

我有一个带有三个 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/

相关文章:

javascript - JS什么时候为字符串创建对象包装器?

Python 与 Perl : performance reading a gzipped file

python3.6用unicode创建win32快捷方式

python - 如何有效地生成所有可能的坐标对而不在numpy中重复

javascript - react 带 : how to make dropDown menu's size fill all of the available space

javascript - 在旧标准中使用 future 的保留关键字

python - 如果我正在使用 Nginx 部署 Django 网站,我是否需要在其之上提供诸如 Digital Ocean 之类的服务?

python - 使用 keras fit_generator 时,如何让 Bokeh 更新显示某些度量与纪元的绘图?

JavaScript If/Else 样式改变

javascript - 如何在 ubuntu 中安装 bower? Node 安装成功