bạn có thể gán một hàm SQL cho thuộc tính:
from sqlalchemy import func
object.data = func.compress(mydata)
session.add(object)
session.commit()
Dưới đây là một ví dụ sử dụng một hàm DB-agnostic Lower () nhiều hơn:
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"
bạn có thể làm cho nó tự động với @validates:
from sqlalchemy.orm import validates
class MyClass(Base):
# ...
data = Column(BLOB)
@validates("data")
def _set_data(self, key, value):
return func.compress(value)
nếu bạn muốn nó có thể đọc được bằng python trước khi xả, bạn cần ghi nhớ cục bộ và sử dụng bộ mô tả để truy cập nó.