简体   繁体   English

从表中获取所有关系的列表 Flask SQLalchemy

[英]Get list of all relationships from a table Flask SQLalchemy

I'm trying to get a list of all the relationships for a table with Flask SQLAlchemy, but don't see any option, just on how to create relationships.我正在尝试获取具有 Flask SQLAlchemy 的表的所有关系列表,但没有看到任何选项,只是关于如何创建关系。 Does anyone know how I can do this?有谁知道我该怎么做? Any help is much appreciated.任何帮助深表感谢。 Here is a simple example of 3 models.这是 3 个模型的简单示例。 How can I get a list of the two relationships from the Member model?如何从成员 model 获取两个关系的列表?

from flask_sqlalchemy import SQLAlchemy
from flask import Flask
import os
from flask_login import UserMixin

app = Flask(__name__)

file_path = os.path.abspath(os.getcwd()) + "\database.db"

app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///" + file_path
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
app.config["SECRET_KEY"] = "my secret!"

db = SQLAlchemy(app)


class Member(db.Model, UserMixin):
    
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(40), unique = True)
    
    
    hobbies = db.relationship("Hobbies", backref="member", lazy="dynamic")
    
    friends = db.relationship("Friends", backref="member", lazy="dynamic")
    
    def __init__(self, name):
        
        self.name = name
        
    def __repr__(self):
        
        return "<Member {}>".format(self.id)
    

    
class Hobbies(db.Model):
    
    id = db.Column(db.Integer, primary_key = True)
    hobby = db.Column(db.String(40))
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
    

    def __init__(self, hobby, user_id):
        
        self.hobby = hobby
        self.user_id = user_id
        
    def __repr__(self):
        
        return "<Hobbies {}>".format(self.id)
    
    
    
class Friends(db.Model):
    
    id = db.Column(db.Integer, primary_key = True)
    friend = db.Column(db.String(40))
    
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
    

    def __init__(self, friend, user_id):
        
        self.friend = friend
        self.user_id = user_id
        
    def __repr__(self):
        
        return "<Friends {}>".format(self.id)

    
from sqlalchemy.inspection import inspect

relations = inspect(Member).relationships.items()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM