I have a javascript form with three sliders where a user can select three different values:
<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>
I'd like to pass all three values (red, green, blue) to python so I can use them with other code, on the same computer. I tried using ajax and the example I saw here, but I think I'm submitting the form incorrectly. How can I post the data instead of calling submit.php so that I can read it with python?
Simple. Use Cherrypy
Put that in a file (say 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())
Then in a terminal:
python main.py
Then go to : http://127.0.0.1:8080 & see magic happening when you click submit (the one next to the search box I added to your code):
You've entered in the form: I entered something in the form...
I litteraly just pasted an example from the doc (& tweaked to fit your code a bit more). Other than
pip install cherrypy
you really have nothing else to do to get started. By far the easiest way to make a webserver in python imo.
Essentially, when you do
@cherrypy.expose
the name of that method becomes https://127.0.0.1:8080/my_new_endpoint
You can easily serve stuff to different endpoints & pass arguments (as shown). So you can very easily add new enpoints. See docs for details.
Have fun!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With