gpt4 book ai didi

python - SQLAlchemy 声明式。指定要选择的列

转载 作者:行者123 更新时间:2023-11-28 20:09:38 24 4
gpt4 key购买 nike

声明基础:

Base = declarative_base()
Base.query = Session.query_property()

类(class):

class Cheat(Base):

__tablename__ = 'cheats'

id = Column(Integer, primary_key = True, autoincrement = True)
cheat = Column(Text)
name = Column(String(255), index = True)
_html = Column('html', Text)
_slug = Column('slug', String(255))

@hybrid_property
def html(self):
return self._html

@html.setter
def set_html(self, md):
from markdown import markdown
self._html = markdown(md)

@hybrid_property
def slug(self):
return self._slug

@slug.setter
def set_slug(self, name):
self._slug = slugify(name)

def __init__(self, name, cheat):
self.name = name
self.slug = name
self.cheat = cheat
self.html = cheat

def __repr__(self):
return "Cheat<%s>" % self.name

现在我可以从秘籍中获得一切:

Cheat.query.all()

SQLAlchemy 会生成类似如下的 SQL 语句:

SELECT name, slug, cheat, html FROM cheats

但我希望我的 SQL 语句是:

SELECT name, slug FROM cheats

所以我需要指定要检索的列,因为我真的不需要通过网络从数据库中提取大量文本。我该怎么做?

最佳答案

将它们定义为 deferred , 然后它们只会在被访问时被获取

from sqlalchemy.orm import deferred

class Cheat(Base):

__tablename__ = 'cheats'

id = Column(Integer, primary_key = True, autoincrement = True)
cheat = deferred(Column(Text))
name = Column(String(255), index = True)
_html = Column('html', Text)
_slug = deferred(Column('slug', String(255)))

关于python - SQLAlchemy 声明式。指定要选择的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10387697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com