mod_python and storing binary form data

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Thu Apr 10 22:33:30 EDT 2008


En Thu, 10 Apr 2008 15:43:23 -0300, <canistel at gmail.com> escribió:

> Hi, I have a little python webservice that I created, and in one of
> the methods I need to store some binary data that was "posted"... I
> want to do something like this, but it doesn't work.
>
> username = form.get("username", "")
> message = form.get("message", "")
> attachment = form.get("attachment", None)
> ...
> c.execute("""INSERT INTO Message (username, message, attachment)
> VALUES (%s, %s, %s)""", (username, message, attachment))
>
>
> "attachment" is then some binary data that was posted, but when I look
> in the mysql database, I see values for the attachment field which
> look like:
>
> Field('attachment', '\x89PNG\r\n\x1a\n\x00\x00\...
>
> so it is storing something, just not my binary data (in this case a
> picture). the attachment column is a longblob in mysql.

I assume you're using mod_python.util.FieldStorage.
For normal (string) values, form.get returns a somewhat bizarre  
StringField that's a subclass of str itself. For files, it returns a Field  
object; it has a "file" attribute that you can use.
See  
http://www.modpython.org/live/current/doc-html/pyapi-util-fstor-fld.html

-- 
Gabriel Genellina




More information about the Python-list mailing list