ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

python – 访问与外键链接的SQLAlchemy模型

2019-08-29 13:57:42  阅读:197  来源: 互联网

标签:python sqlalchemy flask


我有一个带有外键的模型到另一个模型.我查询第一个模型,并希望访问与之相关的模型.在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

解决方法:

在Django中,定义外键定义列以及与其他模型的关系.在SQLAlchemy中,您需要手动定义它们.请参阅有关defining relationships的文档.

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是将用户与组配对的外键. User.group是关系(而Group.users是另一个方向的关系).通常你设置和读取关系,而不是外键.

标签:python,sqlalchemy,flask
来源: https://codeday.me/bug/20190829/1761157.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有