bạn có thể gán một hàm SQL vào 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 thấp hơn) chức năng hơn DB-agnostic (:
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 trong trăn trước khi xả, bạn cần ghi nhớ cục bộ và sử dụng một bộ mô tả để truy cập nó.
'object = object()' có vẻ không phải là một ý tưởng hay đối với tôi. Bạn đang ghi đè tên loại 'đối tượng' ... – glglgl
tôi đã thay đổi nó. cảm ơn –