फ़ाइल से बाइट्स को psycopg2.Binary
. में कास्ट करना अनावश्यक है। यह स्वचालित रूप से तब होगा जब SQLAlchemy डेटाबेस को स्टेटमेंट और मान भेजता है (DBAPI कनेक्टर का उपयोग करके, जो इस मामले में psycopg2 होगा)।
कुछ इस तरह
with open(fn, 'rb') as f:
bytes_ = f.read()
instance = MyModel(document1=bytes_)
session.add(instance)
session.commit()
Python2 और Python3, SQLAlchemy 1.3.x दोनों में काम करता है, इस आउटपुट को इंजन से उत्पन्न करता है:
2020-09-06 10:39:27,775 INFO sqlalchemy.engine.base.Engine INSERT INTO mytable (document1) VALUES (%(document1)s) RETURNING mytable.id
2020-09-06 10:39:27,775 INFO sqlalchemy.engine.base.Engine {'document1': <psycopg2.extensions.Binary object at 0x7f8ea012ff60>}