Maison  >  Article  >  développement back-end  >  Exemple détaillé de requête de table plusieurs-à-plusieurs en flacon Python

Exemple détaillé de requête de table plusieurs-à-plusieurs en flacon Python

零下一度
零下一度original
2017-06-29 15:37:512042parcourir

Lorsque nous étudions le flacon, nous rencontrerons inévitablement une requête de table plusieurs-à-plusieurs. J'ai également rencontré ce problème aujourd'hui. Permettez-moi de partager mes idées sur la plateforme Script Home pour votre référence

Au cours de notre étude de flask, nous rencontrerons inévitablement des requêtes de table plusieurs-à-plusieurs. J'ai également rencontré ce problème aujourd'hui. Puis j'y ai réfléchi longtemps. Je n'ai pas trouvé de solution. J'ai essayé plusieurs méthodes, mais j'ai peut-être abandonné en raison des limites de ma réflexion. Plus tard, je suis allé sur Baidu en ligne, mais j'ai constaté qu'il y avait encore un certain écart entre les résultats de Baidu et quoi. Je voulais. Alors, sur la base des idées que j'ai reçues de Baidu, j'ai également exploré ma structure de données. Voyons comment je l'interroge ici. Tout d'abord, je vais vous montrer un fragment du code de la base de données que j'ai écrit, afin de le faire. approfondissez votre compréhension.


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

Il y a trois tableaux ici. L'un est une liste d'articles, et l'autre est un tableau de classification. Pensons-y. plusieurs catégories, alors une catégorie peut également appartenir à plusieurs articles. De cette façon, nous devons tous comprendre cette logique. Ainsi, mon troisième tableau montre la relation plusieurs-à-plusieurs, alors comment l'interroger ensuite, en fait ? ce dont j'ai besoin maintenant c'est de retrouver tous les articles d'une catégorie,

Jetons un œil à mon code


data=Classifa.query.filter_by(name=&#39;数据库&#39;).first()
 data_post=data.posts

Ici, je trouve directement cette catégorie de la catégorie, puis interrogez les articles appartenant à cette catégorie via le troisième tableau. En fait, c'est très simple ici. Peut-être que mon propre cerveau a été court-circuité à ce moment-là. c'est vrai. En y regardant maintenant, c'est en fait si simple, mais j'ai oublié quelque chose à l'époque. Allez, apprenez sur la voie à suivre.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn