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