Flask 多對多關係

2021-10-06 05:27:08 字數 2552 閱讀 8499

1.專案結構

對錶的基本操作可見鏈結

3.多對多關係

以下通過文章,作者,文章_標記 三個表示例操作

from flask import flask

from flask_sqlalchemy import sqlalchemy

import config

# create table article( # 文章表

# id int primary key authorization,

# title varchar(100) not null

# )#

# create table tag( -- 標籤表

# id int primary key authorization ,

# name varchar (50) not null

# )#

# create table article_tag( -- 文章標籤表,為聯絡文章和標籤的乙個結構

# article_id int,

# tag_id in,

# primary key (article_id,tag_id),

# foreign key article_id references article(id),

# foreign key tag_id references tag(id)

# )article_tag = db.table(

'article_tag'

, db.column(

'article_id'

,db.integer,db.foreignkey(

'article.id'

),primary_key=

true),

db.column(

'tag_id'

,db.integer,db.foreignkey(

'tag.id'

),primary_key=

true))

class

article

(db.model)

: __tablename__ =

'article'

id= db.column(db.integer,primary_key=

true

,autoincrement=

true

) title = db.column(db.string(

100)

,nullable=

false

)# 專用引數 secondary,用於指定使用的關聯表

tags = db.relationship(

'tag'

,secondary=article_tag,backref=db.backref(

'articles'))

class

tag(db.model)

: __tablename__ =

'tag'

id= db.column(db.integer,primary_key=

true

,autoincrement=

true

) name = db.column(db.string(

100)

,nullable=

false

)db.create_all(

)'/'

)def

hello_world()

: article1 = article(title=

'python'

)# 文章一

article2 = article(title=

'flask'

)# 文章二

tag1 = tag(name=

'script language'

)# 標記一

tag2 = tag(name=

'python 框架'

)# 標記二

# 給文章1打標記1,給文章二打上兩個標記

db.session.add(article1)

db.session.add(article2)

db.session.add(tag1)

db.session.add(tag2)

db.session.commit(

) artile = article.query.

filter

(article.title ==

'flask'

).first(

) tags = artile.tags

for tag in tags:

print

(tag.name)

return

'hello world!'

if __name__ ==

'__main__'

:)

多對多關係

實體模型中相關的模型之間為了方便查詢需要做到你中有我 我中有你 一對多表設計上是在多方應用少方的主鍵作為外來鍵約束 模型上需要在多方加入乙個少方模型物件的屬性,在少方加入乙個多方物件的列表 語法 少方物件 db.relationship 少方模型名 backref db.backref xxlist...

Flask 資料庫高階多對多關係

之前介紹了多對多關係 在之前介紹的多對多關係中,關聯表就是乙個簡單的表,不是模型,sqlalchemy 會自動接管這個表。多對多關係可以分解成原表和關聯表之間的兩個一對多關係。這個表裡面儲存了原表的兩個主鍵作為自己的聯合主鍵。存在的問題 因為在這種關聯表裡操作的時候都是物件導向的,新增,刪除等操作都...

Flask sqlalchemy多對多關係

from flask import flask from flask sqlalchemy import sqlalchemy article tag db.table article tag db.column article id db.integer,db.foreignkey article...