【问题标题】:How do I pull data using SQLalchemy如何使用 SQLalchemy 提取数据
【发布时间】:2022-01-14 21:17:10
【问题描述】:

所以我在 python 中使用 sqlalchemy 作为我的 orm,我想看看如何提取一些数据。 这是我构建的 ORM 模型。

class ServerList(Base):
    # Table name
    __tablename__ = "ServerList"
    metadata_obj

    rID = Column(Integer, primary_key=True, autoincrement=True)
    ServerID = Column(BigInteger)
    ServerName = Column(String(200))
    MemberCount = Column(Integer)
    ChannelCount = Column(Integer)
    Prefix = Column(String(200), default='H!')
    WelcomeEnabled = Column(BOOLEAN, default=False)
    LeaveEnabled = Column(BOOLEAN, default=False)
    AutoModEnabled = Column(BOOLEAN, default=True)
    MusicEnabled = Column(BOOLEAN, default=True)
    LastUpdate = Column(DATE)

现在我正在尝试对其进行设置,以便该机器人所在的每个服务器都可以拥有自己的前缀,但我需要从数据库中提取该信息,但似乎找不到这样的案例对我有用。

这段代码是从数据库中获取前缀但没有按预期工作。

async def get_prefix(bot: commands.Bot, message: discord.Message):
    with Session(engine) as session:
        guild = session.query(ServerList).filter_by(ServerID=message.guild.id).first()
        if not guild:
            return PREFIX
        else:
            prefix = session.query(ServerList).filter_by(ServerID=message.guild.id).fetch(Prefix)
            return prefix

欢迎提出任何建议。谢谢你的帮助。

【问题讨论】:

    标签: sqlalchemy discord.py


    【解决方案1】:

    所以我自己解决了这个问题,但我想我会发布我找到的解决方案。

    所以我首先打印了查询:

    session.query(ServerList).filter_by(ServerID=ctx.guild.id).first()
    

    返回一个对象

    所以通过将查询命名为变量,我可以调用 var.Prefix

    这是修复后的代码。

    async def get_prefix(bot: commands.Bot, message: discord.Message):
        with Session(engine) as session:
            guild = session.query(ServerList).filter_by(ServerID=message.guild.id).first()
            if not guild:
                return PREFIX
            else:
                GuildData  = session.query(ServerList).filter_by(ServerID=message.guild.id).first()
                return GuildData.Prefix
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-08
      • 2021-12-17
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      相关资源
      最近更新 更多