Gio*_*ino 6 python mysql sqlalchemy
table:
id(整数主键)
数据(blob)
我使用mysql和sqlalchemy.要插入我使用的数据:
o = Demo()
o.data = mydata
session.add(o)
session.commit()
Run Code Online (Sandbox Code Playgroud)
我想像这样插入表格:
INSERT INTO table(data) VALUES(COMPRESS(mydata))
Run Code Online (Sandbox Code Playgroud)
我怎么能用sqlalchemy做到这一点?
您可以将 SQL 函数分配给该属性:
from sqlalchemy import func
object.data = func.compress(mydata)
session.add(object)
session.commit()
Run Code Online (Sandbox Code Playgroud)
下面是一个使用与数据库无关的 lower() 函数的示例:
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"
Run Code Online (Sandbox Code Playgroud)
您可以使用@validates使其自动执行:
from sqlalchemy.orm import validates
class MyClass(Base):
# ...
data = Column(BLOB)
@validates("data")
def _set_data(self, key, value):
return func.compress(value)
Run Code Online (Sandbox Code Playgroud)
如果你希望在刷新之前在 python 中可读它,你需要在本地记住它并使用描述符来访问它。
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |