Ich versuche Beziehungen in flask_sqlalchemy zu lernen, aber wirklich harte Zeit, um den Code arbeiten zu bekommen. Erstens mangelt es an guten Tutorials zu diesem Thema, aber ich habe mich trotzdem einigen Bits und Informationen angeschlossen, um etwas Code zu schreiben, aber ich bekomme nicht die erwarteten Ergebnisse.Verständnis von einer zu vielen Beziehungen in flask_sqlalchemy
Können Sie in diesem Code erklären, was ich falsch mache?
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://<my_user>:<my_password>@localhost/flask_apps'
db = SQLAlchemy(app)
class Universe(db.Model):
__tablename__ = 'universe'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(30))
hero = db.relationship('Characters', backref='u_name', lazy='dynamic')
class Characters(db.Model):
__tablename__= 'characters'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
uni = db.Column(db.Integer, db.ForeignKey('universe.id'))
if __name__ == '__main__':
db.drop_all()
db.create_all()
dc = Universe(name='DC')
marvel = Universe(name='Marvel')
db.session.add(dc)
db.session.add(marvel)
db.session.commit()
flash = Characters(name='Flash', u_name=dc)
batman = Characters(name='Batman', u_name=dc)
arrow = Characters(name='Arrow', u_name=dc)
ironman = Characters(name='IronMan', u_name=marvel)
thor = Characters(name='Thor', u_name=marvel)
db.session.add(flash)
db.session.add(ironman)
db.session.commit()
u = Universe.query.filter_by(name='DC').first()
print(u.hero)
Und das ist die Ausgabe, die ich bekomme.
SELECT characters.id AS characters_id, characters.name AS characters_name, characters.uni AS characters_uni
FROM characters
WHERE %(param_1)s = characters.uni
Process finished with exit code 0
Ich erwarte die Namen von Charakteren, die diese bestimmte Universum gehören zu bekommen. Ich bin mir nicht sicher, was ich hier vermisse.