Heim > Artikel > Backend-Entwicklung > Detailliertes Beispiel einer Python-Flask-Viele-zu-Viele-Tabellenabfrage
Wenn wir Kolben studieren, werden wir unweigerlich auf eine Viele-zu-Viele-Tabelle Abfrage stoßen. Ich bin heute auch auf dieses Problem gestoßen. Lassen Sie mich meine Ideen als Referenz an die Script Home-Plattform weitergeben.
Während unseres Studiums von Flask werden wir unweigerlich auf viele-zu-viele-Tabellenabfragen stoßen. Auch ich bin heute auf dieses Problem gestoßen. Dann habe ich lange darüber nachgedacht. Mir fiel keine Lösung ein. Ich habe mehrere Methoden ausprobiert, aber vielleicht habe ich aufgrund von Einschränkungen meines Denkens aufgegeben. Später habe ich Baidu online aufgerufen, aber festgestellt, dass es immer noch eine gewisse Lücke zwischen den Ergebnissen von Baidu und denen gab Ich wollte. Basierend auf den Ideen, die ich von Baidu erhalten habe, schaue ich mir hier zunächst an, wie ich sie abfrage vertiefen Sie Ihr Verständnis.
post_class=db.Table('post_class', db.Column('post_id',db.Integer(),db.ForeignKey('posts.id')), db.Column('classifa_id',db.Integer(),db.ForeignKey('fenlei.id'))) class Post(db.Model):#文章表 tablename='posts' id=db.Column(db.Integer,primary_key=True,autoincrement=True) title=db.Column(db.String(255),unique=True) text=db.Column(db.Text()) publish_date=db.Column(db.DateTime,default=datetime.datetime.now()) user_id=db.Column(db.Integer,db.ForeignKey('users.id')) is_recomment=db.Column(db.Boolean,default=False) comments = db.relationship( 'Comment', backref='posts', lazy='dynamic') tag = db.relationship( 'Tag', secondary=posts_tags, backref=db.backref('posts', lazy='dynamic') ) classname=db.relationship('Classifa', secondary=post_class, backref=db.backref('posts')) def repr(self): return "<Model Post `{}`>".format(self.title) class Classifa(db.Model):#分类 tablename='fenlei' id=db.Column(db.Integer(),primary_key=True) name=db.Column(db.String(64)) def repr(self): return self.name
Hier gibt es drei Tabellen, eine ist eine Liste von Artikeln und die andere ist eine Klassifizierungstabelle Mehrere Kategorien, dann kann eine Kategorie auch zu mehreren Artikeln gehören. Auf diese Weise müssen wir alle diese Logik verstehen. Wie fragen wir sie also tatsächlich ab? Was ich jetzt brauche, ist, alle Artikel unter einer Kategorie zu finden.
Schauen wir uns meinen Code an
data=Classifa.query.filter_by(name='数据库').first() data_post=data.posts
Hier finde ich direkt Diese Kategorie aus der Kategorie abfragen und dann die zu dieser Kategorie gehörenden Artikel über die dritte Tabelle abfragen. Vielleicht war mein eigenes Gehirn damals kurzgeschlossen Richtig. Wenn ich es jetzt betrachte, ist es eigentlich so einfach, aber ich habe damals etwas übersehen. Komm schon, lerne auf dem Weg nach vorne.
Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel einer Python-Flask-Viele-zu-Viele-Tabellenabfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!