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

零下一度
Freigeben: 2017-06-29 15:37:51
Original
2041 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!