当前位置:  开发笔记 > 编程语言 > 正文

访问与外键链接的SQLAlchemy模型

如何解决《访问与外键链接的SQLAlchemy模型》经验,为你挑选了1个好方法。

我有一个外键指向另一个模型的模型。我查询第一个模型,并想访问与其相关的模型。在Django中,我可以从外键访问模型。如何在SQLAlchemy中做到这一点?

class Model(Base):
    field_id = Column(Integer, ForeignKey('Model2.id'))

class Model2(Base):
    id = Column(Integer)
    needed_field = Column(Integer)
models = Model.query.all()
return render to template('templ.html', models=models)

Django的工作方式如下:

models = Model.objects.all()
model.field_id.needed_field # loop in template

davidism.. 6

在Django中,定义外键可定义列以及与其他模型的关系。在SQLAlchemy中,您需要手动定义两者。请参阅有关定义关系的文档。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
db = SQLAlchemy(app)

class Group(db.Model):
    id = db.Column(db.Integer, primary_key=True)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    group_id = db.Column(db.ForeignKey(Group.id))
    group = db.relationship(Group, backref='users')

db.create_all()
db.session.add(User(group=Group()))
db.session.commit()
u = User.query.get(1)
print(u.group)

User.group_id是将a User与配对的外键GroupUser.group是关系(并且Group.users是另一个方向上的关系)。通常,您设置并读取关系,而不是外键。



1> davidism..:

在Django中,定义外键可定义列以及与其他模型的关系。在SQLAlchemy中,您需要手动定义两者。请参阅有关定义关系的文档。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
db = SQLAlchemy(app)

class Group(db.Model):
    id = db.Column(db.Integer, primary_key=True)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    group_id = db.Column(db.ForeignKey(Group.id))
    group = db.relationship(Group, backref='users')

db.create_all()
db.session.add(User(group=Group()))
db.session.commit()
u = User.query.get(1)
print(u.group)

User.group_id是将a User与配对的外键GroupUser.group是关系(并且Group.users是另一个方向上的关系)。通常,您设置并读取关系,而不是外键。

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有