gpt4 book ai didi

python - SqlAlchemy如何将这个类添加到数据库中

转载 作者:行者123 更新时间:2023-11-29 12:27:23 24 4
gpt4 key购买 nike

我有一个类,它有一个像这样的另一个类的数组

class Episode :
def __init__(self, t, l) :
self.title = t
self.link = l

class Show :
episodes = []
def__init__(self,m)
self.title = m.title
self.description = m.description
self.image = m.image

节目对象以剧集对象列表结束,我不知道如何使用 sqlAlchemy 将它添加到数据库中,我应该如何格式化类,比如

class Show : 
__tablename__ = 'shows'
title = Column(UnicodeText())
image = Column(UnicodeText())
description = Column(UnicodeText())

episodes = Column( ????? )

我想我必须使用 relationship功能,只是不确定如何

我是数据库编程的新手

非常感谢任何帮助,谢谢!

编辑

在这个例子中, child 正在获取 parent 的 ID,但我需要 Show 有一个带有标题和链接的剧集列表

class Parent(Base):
__tablename__ = 'parent'
id = Column(Integer, primary_key=True)
children = relationship("Child")

class Child(Base):
__tablename__ = 'child'
id = Column(Integer, primary_key=True)
parent_id = Column(Integer, ForeignKey('parent.id'))

我会这样做吗?

class Show(Base):
__tablename__ = 'shows'
title = Column(UnicodeText())
image = Column(UnicodeText())
description = Column(UnicodeText())
episodes = Column(Array ??? , ForeignKey('episodes'))

class Episode(Base) :
__tablename__= 'episodes'
title = Column(UnicodeText())
link = Column(UnicodeText())
children = relationship("Show")

最佳答案

我认为最好的起点是 SqlAlchemy 关于建立表间关系的介绍——直接按照 pavel_form 的评论。

结果将是一个看起来像这样的代码:

class Show(Base):
__tablename__ = 'Show'

id = Column(Integer, primary_key = True)
episodes = relationship("Episodes", order_by "Episodes.id", backref = 'Show')

def __init__(self, episodes):
self.episodes = episodes

class Episodes(Base):
___tablename__ = 'Episodes'

id = Column(Integer, primary_key = True)
show_id = Column(Integer, ForeignKey('Show.id'))

def __init__(self, show_id)

因此,您可以先创建节目,然后再创建各个剧集。重要的是,当您创建剧集时,您必须在剧集的创建中引用“show_id”,即您所引用的节目的主键。

这样做会希望你打电话

ExampleShow.episodes

(1,2,3,4)

这些数字是剧集的 primary_key 数字。当然,您可以通过添加

更改调用时 ExampleShow.episodes 报告 ID 的方式
def __repr__(self):
return XYZ

到 Episode 类。 XYZ 必须是类中的一个列,并且已映射,但它可以是剧集名称,例如。然后在 ExampleShow.episodes 中打洞将返回 ('Name1', 'Name2', etc)

关于python - SqlAlchemy如何将这个类添加到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25137211/

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