フラスコの学習では、必然的に多対多のテーブルクエリに遭遇します。私も今日この問題に遭遇しました。参考までに私のアイデアを Script Home プラットフォームに共有させてください
flask の研究では、必然的に多対多のテーブル クエリに遭遇します。私も今日この問題に遭遇しました。それから私は長い間考えました。解決策が思い浮かばず、いくつかの方法を試しましたが、私の思考の限界で諦めたのかもしれません。その後、オンラインで百度にアクセスしましたが、百度の結果との間にはまだ一定のギャップがあることがわかりました。そこで、Baidu から得たアイデアに基づいて、データ構造を調べてみましょう。まず、私が作成したデータベース コードの一部を示します。理解を深めます。
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
ここには 3 つのテーブルがあります。1 つは記事のリストで、もう 1 つは分類テーブルです。記事は同時に複数のカテゴリに属する可能性があるので、考えてみましょう。このロジックは誰でも理解できると思います。では、3 番目のテーブルには多対多の関係が表示されています。実際、現在必要なのは、すべてのカテゴリを分類することです。以下の記事、
私のコードを見てみましょう
data=Classifa.query.filter_by(name='数据库').first() data_post=data.posts
ここでは、カテゴリからこのカテゴリを直接見つけて、3番目のテーブルを通じてこのカテゴリに属する記事をクエリします。実際、これは非常に簡単です。たぶん、当時は自分が何を正しいと思っていたのか分かりませんでした。ただ、当時は何かを見落としていただけです。さあ、前に進む途中で学びましょう。
以上がPython フラスコの多対多テーブル クエリの詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。