[Twisted-Python] form and submit
![](https://secure.gravatar.com/avatar/996553ee6355237d24b63351a0c01208.jpg?s=120&d=mm&r=g)
I have a form with a submit button. I want to send my data from the form in a web page to an other web page. Also, I want to check if the data is correct. I'm new to twisted, so I need some help Vicky _________________________________________________________________ MSN Messenger : discutez en direct avec vos amis ! http://messenger.fr.msn.ca/
![](https://secure.gravatar.com/avatar/cdedd0f07d3d5976128eea43ea89c50b.jpg?s=120&d=mm&r=g)
Vickey, Here is something that could get you started. "request.args" returns a dictionary of the forms data, including buttons. Copy and paste this code into your Python window and run it, and using your browser, go to this URL http://localhost:8080 and play with it. from twisted.web import server, resource from twisted.internet import reactor class Simple(resource.Resource): isLeaf = True def render(self, request): """ request.args.get('key', '') gets the forms values. This "page" just prints a SUBMIT button and a text field. There is no actual CGI called "default.cgi", you would have to handle seperate script files manually at this stage, but you could handle your forms page right here. In this example I have a textfield called "Field" as you see in the HTML below. when submitting, this just loops back to this code, extracts the forms values, then re-renders the forms page in html before it exits and loops back again. """ IP = request.getClientIP() html = "" html += "<html>Hello, world!</html><br><br>" html += "Keys are...<br>" for key in request.args.keys(): html += "%s " % key html += "<br>uri = %s<br>" % request.uri html += "<br>method = %s<br>" % request.method html += "<br>path = %s<br>" % request.path field_value = request.args.get('Field', '') html += "<br>Field = %s<br>" % field_value html += "<br>ClientIP = %s<br>" % IP button_val = request.args.get('name_submit','') html += "<br>button_val = %s<br>" % button_val form = """ <FORM ACTION="default.cgi" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded"> <P>Test input: <INPUT TYPE="TEXT" NAME="Field" SIZE="25"><BR> <INPUT TYPE="SUBMIT" NAME="name_submit" VALUE="Submit"> </FORM> """ return html + form site = server.Site(Simple()) reactor.listenTCP(8080, site) reactor.run()
![](https://secure.gravatar.com/avatar/cdedd0f07d3d5976128eea43ea89c50b.jpg?s=120&d=mm&r=g)
Vickey, Here is something that could get you started. "request.args" returns a dictionary of the forms data, including buttons. Copy and paste this code into your Python window and run it, and using your browser, go to this URL http://localhost:8080 and play with it. from twisted.web import server, resource from twisted.internet import reactor class Simple(resource.Resource): isLeaf = True def render(self, request): """ request.args.get('key', '') gets the forms values. This "page" just prints a SUBMIT button and a text field. There is no actual CGI called "default.cgi", you would have to handle seperate script files manually at this stage, but you could handle your forms page right here. In this example I have a textfield called "Field" as you see in the HTML below. when submitting, this just loops back to this code, extracts the forms values, then re-renders the forms page in html before it exits and loops back again. """ IP = request.getClientIP() html = "" html += "<html>Hello, world!</html><br><br>" html += "Keys are...<br>" for key in request.args.keys(): html += "%s " % key html += "<br>uri = %s<br>" % request.uri html += "<br>method = %s<br>" % request.method html += "<br>path = %s<br>" % request.path field_value = request.args.get('Field', '') html += "<br>Field = %s<br>" % field_value html += "<br>ClientIP = %s<br>" % IP button_val = request.args.get('name_submit','') html += "<br>button_val = %s<br>" % button_val form = """ <FORM ACTION="default.cgi" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded"> <P>Test input: <INPUT TYPE="TEXT" NAME="Field" SIZE="25"><BR> <INPUT TYPE="SUBMIT" NAME="name_submit" VALUE="Submit"> </FORM> """ return html + form site = server.Site(Simple()) reactor.listenTCP(8080, site) reactor.run()
participants (2)
-
John D.
-
vicky lupien