[Twisted-Python] how to get form values in woven?

Mike Mueller pyp at gmx.net
Fri Jan 9 07:38:00 EST 2004

At 05:16 09.01.2004 +0100, I wrote:
>There are several problems with this.
>1.) wchild_processMyForm gets called twice every time the submit button is hit
>2.) for the first call the method is post for, the second it is get
>3.) arg is always {}, so nothing to process
>Obviously, I am doing something wrong. Basically I just want to echo back 
>the name/values pairs that where entered into the form. How do I do this 
>with woven?

I took me while but I found the problems:

1.) <form action="processMyForm" method="post"> must be <form 
action="processMyForm/" method="post">
2.)  <input type="text" id="Text1"/> must be <input type="text" name="Text1"/>

The working script looks like this:

from twisted.application import service, internet
from twisted.web.woven import page
from twisted.web import server, resource

class FirstPage(page.Page):
     template = """<html>
         <title>First Form</title>
           <h3>First Form</h3>
           <form action="processMyForm/" method="post">
           <input type="text" name="Text1"/><br/>
           <input type="text" name="Text2"/><br/>
           <input type="submit" value="Send"/>
     def initialize(self, *args, **kwargs):
         self.numberOfProcessCalls = 0
     def wchild_processMyForm(self, request):
         self.numberOfProcessCalls += 1
         keysValues = []
         for k, v in request.__dict__.items():
             keysValues.append('%s:\t %s' %(k,v))
         model = {'keys-values': keysValues,
         return page.Page(model, template=
                              Number of calls:
                              <p model="number" view="Text" />
                              <h3>arg keys: values</h3>
                              <div model="keys-values" view="List">
                                 <p pattern="listItem" view="Text" />

p = FirstPage()
application = service.Application('SimpleForm')


More information about the Twisted-Python mailing list