psycopg2 for insertion of binary data to PostgreSQL database

Julia Jacobson julia.jacobson at arcor.de
Sun Aug 22 15:53:51 EDT 2010


Thanks a lot, this was the solution.
It would be greate, if you could also show me a way to extract the 
inserted binary object from the table on the server to a file on a client.

 > Peter Otten wrote:
>> Julia Jacobson wrote:
>>
>> Hello everybody out there using python,
>>
>> For the insertion of pictures into my PostgreSQL database [with table
>> foo created by SQL command "CREATE TABLE foo (bmp BYTEA)], I've written
>> the following script:
>>
>> #!/usr/bin/python
>> import psycopg2
>> try:
>>       conn = psycopg2.connect("dbname='postgres' user='postgres'
>> host='localhost' password='data'");
>> except:
>>       print "I am unable to connect to the database"
>> cur = conn.cursor()
>> f = open("test.bmp", 'rb')
>> myfile = f.read()
>> try:
>>       cur.execute("INSERT INTO foo VALUES (%s)",(buffer(myfile),))
>> except:
>>       print "Insert unsuccessful"
>>
>> "python script.py" runs the script without any errors or messages.
>> However, the SQL command "SELECT * FROM foo"  returns the output "foo (0
>> rows)" with no entries in the table.
>> I'm using Python 2.7 and PostgreSQL 8.3.
>> Could anyone help me to find a way to pin down the problem?
>
> Perhaps you need to conn.commit() your changes.




More information about the Python-list mailing list