title: Getting the input from a PUT method in Web.py
body: <p>I'm using the following code in my server program:</p>
  
  <pre><code>class AddLibSong:
    def PUT(self):
    db = MahData.getDBConnection()
    songs = json.loads(web.input().to_add)
    addToLibrary(songs)
    return
  </code></pre>
  
  <p>But for some reason when I do a PUT with the data:</p>
  
  <pre><code>"to_add=[ { "album" : "Unknonwn", "artist" : "Unknonwn", "host_lib_id" : "1", "is_deleted" :
  "false", "server_lib_id" : "-1", "song" : "Moneytalks" } ]" 
  </code></pre>
  
  <p>I get the following error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/web/application.py", line 237, in process
      return self.handle()
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/web/application.py", line 228, in handle
      return self._delegate(fn, self.fvars, args)
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/web/application.py", line 409, in _delegate
      return handle_class(cls)
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/web/application.py", line 385, in handle_class
      return tocall(*args)
    File "/Users/kurtis/sandbox/udj/webserver/Library.py", line 114, in PUT
      song = json.loads(web.input().to_add)
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/web/utils.py", line 76, in __getattr__
      raise AttributeError, k
  AttributeError: 'to_add'
  
  127.0.0.1:51096 - - [29/Sep/2011 19:02:58] "HTTP/1.1 PUT /add_songs_to_library" - 500 Internal Server Error
  </code></pre>
  
  <p>Anybody know why this is? I think I saw something about Web.py begin only able to get input if given a POST or GET but I didn't see anything in the source code that should prevent this.</p>