python flask 多對多表查詢功能

2022-10-04 11:42:12 字數 1832 閱讀 5885

我們在flask的學習中,會難免遇到多對多表的查詢,今天我也遇到了這個問題。那麼我想了好久。也沒有想到乙個解決的辦法,試了幾種方法,可能是思路的限制我放棄了,後來,我就在網上百度,可是發現百度出來的結果和自己想要的還有一定的差距,那麼我根據百度上得來的思路,那麼我也對我的資料結構進行了探索, 下面來看看我這裡怎麼來查程式設計客棧詢的,首先給大家看下我寫的資料庫的**的片段,這樣,加深理解。

程式設計客棧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.co程式設計客棧lumn(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')

ydqpyx 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 "".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

這裡有三張表,一張呢是文章的列表,另一張呢,是分類表,我們來想下,一篇文章可能同時屬於多個分類,那麼乙個分類可能也屬於多個文章,這麼來說想必我們大家都能理解這個邏輯,那麼呢,我第三表來顯示多對多關係的,那麼我們接下來怎麼去查詢呢,其實我現在的需求就是我要找個乙個分類下面所有的文章吧,

下面來看看我的**

data=classifa.query.filter_by(n'資料庫').first()

data_post=data.posts

這裡呢,我直接先從分類找到這個分類,然後通過第三表來查詢屬於這個分類的文章、其實呢 這裡很簡單,可能是我當時自己的腦子短路了吧, 不知道怎麼想是對的,現在來看 其實還是那麼的簡單,只是當時我忽略了什麼。    加油,學習前進的路上。

本文標題: python flask 多對多表查詢功能

本文位址:

十二 多表的建立及關係 多對多

多對多,在開發中我們一般引入一張中間表,在中間表中存放兩張表的主鍵,一般還會將這兩個主鍵設定成中間表的聯合主鍵 例子 商品和訂單 建立商品表 create table product id int primary key auto increment,name varchar 20 price do...

MyBatis 多表操作(一對多)

mybatis 多表操作 一對一 在前面的基礎上給部門增加乙個員工集合屬性 其他無需改變 data public class employee data public class department 插入 insert into t dept id dept name values 8848 開發...

sql語句之多表關係 一對多 多對多

建立主表 分類表 create table category cid int primary keyauto increment cname varchar 20 建立從表 產品表 create table product pid int primary keyauto increment pnam...