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

零下一度
Libérer: 2017-06-29 15:37:51
original
2041 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!