Heim  >  Artikel  >  Backend-Entwicklung  >  Detailliertes Beispiel einer Python-Flask-Viele-zu-Viele-Tabellenabfrage

Detailliertes Beispiel einer Python-Flask-Viele-zu-Viele-Tabellenabfrage

零下一度
零下一度Original
2017-06-29 15:37:512063Durchsuche

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=&#39;fenlei&#39;
  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=&#39;数据库&#39;).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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn