आप विशेषता के लिए SQL फ़ंक्शन असाइन कर सकते हैं:
from sqlalchemy import func
object.data = func.compress(mydata)
session.add(object)
session.commit()
अधिक डीबी-अज्ञेयवादी कम() फ़ंक्शन का उपयोग करके यहां एक उदाहरण दिया गया है:
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base
Base= declarative_base()
class A(Base):
__tablename__ = "a"
id = Column(Integer, primary_key=True)
data = Column(String)
e = create_engine('sqlite://', echo=True)
Base.metadata.create_all(e)
s = Session(e)
a1 = A()
a1.data = func.lower("SomeData")
s.add(a1)
s.commit()
assert a1.data == "somedata"
आप इसे @validates के साथ स्वचालित बना सकते हैं:
from sqlalchemy.orm import validates
class MyClass(Base):
# ...
data = Column(BLOB)
@validates("data")
def _set_data(self, key, value):
return func.compress(value)
यदि आप इसे फ्लश से पहले पायथन में पठनीय बनाना चाहते हैं, तो आपको इसे स्थानीय रूप से याद रखना होगा और इसे एक्सेस करने के लिए एक डिस्क्रिप्टर का उपयोग करना होगा।