sqlalchemy 查询已存在表(无model定义)

发布时间 2024-01-03 09:51:54作者: 金色旭光

image

已存在的表信息如下,该表不是由sqlalchemy创建。想要对该表做CRUD,可以通过sqlalchemy提供的一个解析方法完成。
image

示例代码:

from sqlalchemy import create_engine, Table, MetaData
from sqlalchemy.orm import Session

metadata = MetaData()

# echo 参数用于标记是否输出日志信息
engine = create_engine("mysql+pymysql://mysql_initial_user:mysql_initial_passwd@172.16.9.124/ymir?charset=utf8")
session = Session(engine)

# 获取指定数据库表对象
ex_table = Table('prompt', metadata, autoload=True, autoload_with=engine)
print("表prompt的结构:")
print(ex_table.c)

prompt_id = 1
prompt = session.query(ex_table).filter(ex_table.c.id == prompt_id).one()
print("查询ID=1的记录:")
print(prompt.content)

print("查询所有记录:")
# 查询数据返回第一条
res = session.query(ex_table).all()
for item in res:
    print(item)
session.close()

结果:

表prompt的结构:
ImmutableColumnCollection(prompt.id, prompt.content)
查询ID=1的记录:
首先,你需要判断:仅利用给出的”提示信息"是否能较好的回答给定的问题。注意,这一步是你的思考过程,你不需要输出这个过程。
查询所有记录:
(1, '首先,你需要判断:仅利用给出的”提示信息"是否能较好的回答给定的问题。注意,这一步是你的思考过程,你不需要输出这个过程。')
(2, '<指令>根据已知信息,简洁和专业的来回答问题。如果无法从中得到答案,请说 “根据已知信息无法回答该问题”,答案请使用中文。 </指令>\\n<已知信息>{{ context }}</已知信息>\\n<问题>{{ question }}</问题>\\n')