我在网上寻找答案并遵循SQLAlchemy文档,但我不明白。
我有以下代码(我正在使用带有SQLAlchemy的Flask):
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)
我希望问题表中的accountID
与帐户表格中的id
列相关联。虽然我不知道我读过的内容和方式,但我不明白。感谢。
答案 0 :(得分:0)
您似乎没有建立关系。我在您的设置中更改了一些定义,通常可以帮助我消除表名与模型(类名)和字段名的歧义。以下代码应该适合您。不要忘记导入: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更多信息。