使用 SQLAlchemy 创建外键
Creating a foreign key with SQLAlchemy
我在网上寻找答案并遵循了 SQLAlchemy 文档,但我不明白。
我有以下代码(我将 Flask 与 SQLAlchemy 结合使用):
class accounts(db.Model):
__tablename__ = 'accounts'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
class questions(db.Model):
__tablename__ = 'questions'
id = db.Column(db.Integer, primary_key=True)
accountID = db.Column(db.Integer, db.ForeignKey('accounts.id'))
question = db.Column(db.String(500), nullable=False)
我希望问题 table 中的 accountID
与帐户 table 中的 id
列相关联。虽然我不知道我是怎么读的,读了什么,但我不明白。谢谢
你好像还没有建立关系。我在您的设置中更改了一些定义,这些定义通常可以帮助我消除 table 名称与模型(class 名称)与字段名称的歧义。以下代码应该适合您。不要忘记导入:from sqlalchemy.orm import relationship
.
class Account(db.Model):
__tablename__ = 'accounts'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
questions = relationship("Question", backref="accounts")
class Question(Base):
__tablename__ = 'questions'
id = db.Column(db.Integer, primary_key=True)
account_id = db.Column(db.Integer, db.ForeignKey('accounts.id'))
body = db.Column(db.String(500), nullable=False)
上述设置还允许您获取与帐户相关的所有问题(使用 Account.questions
)。
有关此主题的 SQL Alchemy docs 中有更多内容。
我在网上寻找答案并遵循了 SQLAlchemy 文档,但我不明白。
我有以下代码(我将 Flask 与 SQLAlchemy 结合使用):
class accounts(db.Model):
__tablename__ = 'accounts'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
class questions(db.Model):
__tablename__ = 'questions'
id = db.Column(db.Integer, primary_key=True)
accountID = db.Column(db.Integer, db.ForeignKey('accounts.id'))
question = db.Column(db.String(500), nullable=False)
我希望问题 table 中的 accountID
与帐户 table 中的 id
列相关联。虽然我不知道我是怎么读的,读了什么,但我不明白。谢谢
你好像还没有建立关系。我在您的设置中更改了一些定义,这些定义通常可以帮助我消除 table 名称与模型(class 名称)与字段名称的歧义。以下代码应该适合您。不要忘记导入:from sqlalchemy.orm import relationship
.
class Account(db.Model):
__tablename__ = 'accounts'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
questions = relationship("Question", backref="accounts")
class Question(Base):
__tablename__ = 'questions'
id = db.Column(db.Integer, primary_key=True)
account_id = db.Column(db.Integer, db.ForeignKey('accounts.id'))
body = db.Column(db.String(500), nullable=False)
上述设置还允许您获取与帐户相关的所有问题(使用 Account.questions
)。
有关此主题的 SQL Alchemy docs 中有更多内容。