Flask 模型關係

2021-09-02 13:05:26 字數 2645 閱讀 3131

在models中:

建立乙個一的類:

#建立乙個一的類

class grade(db.model):

id = db.column(

db.integer,

primary_key=true,

autoincrement=true,

)name = db.column(

db.string(20),

unique=true

)#重點,relationship,寫在一的類中

stus = db.relationship(

#對應的多的那個類名

"stu",

#反向的關係,一般用一的類的類名(自己的類名)

backref="grade",

lazy=true

)

建立乙個多的類:
#建立乙個多的類

class stu(db.model):

id = db.column(

db.integer,

primary_key=true,

autoincrement=true,

)name = db.column(

db.string(20),

unique=true

)#外來鍵

grade_id = db.column(

db.integer,

#外來鍵db.foreignkey("grade.id")

)

在views中:

用多去查詢一:

@blue.route("/get_grade/")

def get_grade(sid):

#查詢學生(一)中id=sid的資料物件

stu = stu.query.get(sid)

#用這個資料的物件直接(.反向關係名字)查詢到這學生id對應的班級

grade = stu.grade

return grade.name

用一去查詢多:
@blue.route("/get_stu/")

def get_stu(gid):

#查詢班級(多)中id=gid的資料物件,在直接訪問自己(多)中的屬性stus(relationship)

stu = grade.query.get(gid).stus

for i in stu:

print(i)

return "ok"

在models中:

建立第乙個多的類:

class tag(db.model):

id = db.column(

db.integer,

primary_key=true,

autoincrement=true,

)title = db.column(

db.string(20),

)

建立中間類:
tags = db.table(

#中間表名字

"tags",

db.column(

"tag_id",

db.integer,

db.foreignkey("tag.id"),

primary_key=true

),db.column(

"book_id",

db.integer,

db.foreignkey("book.id"),

primary_key=true

))

建立第二個多的類(其中乙個多的類寫relationship):
class book(db.model):

id = db.column(

db.integer,

primary_key=true,

autoincrement=true,

)name = db.column(

db.string(20),

)tags = db.relationship(

#對應另外乙個多的類的類名

"tag",

#中間表

secondary=tags,

#反向的關係,一般用一的類的類名(自己的類名)

backref=db.backref("books", lazy=true),

lazy=true

)

在views中:

@blue.route("/get_book/")

def get_book_by_tag(t_id):

tag = tag.query.get(t_id)

books = tag.books

for i in books:

print(i.name)

return "ok"

@blue.route("/get_tag/")

def get_tag_by_book(b_id):

book = book.query.get(b_id).tags

for i in tags:

print(i.title)

return "ok"

個人理解是:兩個一對多合併在一起,中間類就是兩個一對多的多那個類。

flask 資料模型的外來鍵關係

sql資料庫中,兩個表之間的關係表現為外來鍵.在sqlalchemy的模型中,也可以表現這種模型之間的關聯關係.class role db.model tablename roles id db.column db.integer,primary key true name db.column db...

關係模型關係模型

關係模型研究的內容 乙個關係就是乙個table,關係模型就是處理table的 在處理table時涉及到以下內容 關係模型三要素 表 關係 下圖是對一張表的定義,我們稱表也為關係。域 所有可取的列值構成的集合。域的笛卡爾積的子集被成為關係。下圖表示了使用關係模式對關係進行描述,關係模式中的a1是屬性名...

Flask 物件關係

from sqlalchemy import column,integer,string,metadata,foreignkey from sqlalchemy.ext.declarative import declarative base from sqlalchemy.orm import re...