sqlalchemy的ORM的多對多關係

2021-09-25 13:25:07 字數 2014 閱讀 6719

1.首先建立兩實體

2.建立中間表

3.在其中乙個模型中建立relathionship屬性,來繫結三個表之間的關係,在使用relationship的時候需要傳入乙個secondary=中間表

from flask import flask, jsonify, json

from sqlalchemy import create_engine, column, integer, string, datetime, float, func, and_, or_, foreignkey, table

from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy.orm import sessionmaker, relationship

# 連線資料庫字串

db_uri = "mysql:"

engine = create_engine(db_uri)

# 判斷是否連線成功

engine.connect()

# 建立orm

base = declarative_base(engine)

# 建立回話

session = sessionmaker(engine)()

#中間表

article_tag = table(

"article_tag",

base.metadata,

column("article_id", integer, foreignkey("article.id"), primary_key=true),

column("tag_id", integer, foreignkey("tag.id"), primary_key=true)

)# 文章

class article(base):

# 表名字

__tablename__ = 'article'

# 列id = column(integer, primary_key=true, autoincrement=true)

title = column(string(50), default='1111')

def __repr__(self):

return "" % self.title

#標籤表

class tag(base):

# 表名字

__tablename__ = 'tag'

# 列id = column(integer, primary_key=true, autoincrement=true)

name = column(string(50))

articles = relationship("article", backref="tags", secondary=article_tag)

# 生成實體

base.metadata.drop_all()

base.metadata.create_all()

# 多對多關係資料操作

article1 = article(title="title00001")

article2 = article(title="title00002")

tag1 = tag(name="tag001")

tag2 = tag(name="tag002")

session.add(article1)

session.add(article2)

session.commit()

#查詢多對多關係

article = session.query(article).first()

print(article.tags)

tag = session.query(tag).first()

print(tag.articles)

個人部落格:十分鐘空間:

ORM框架SQLAlchemy的操作

1.首先建立乙個空py檔案 這裡命名為connect.py from sqlalchemy import create engine from sqlalchemy.ext.declarative import declarative base from sqlalchemy.orm import ...

ORM框架SQLAlchemy的操作

1.首先建立乙個空py檔案 這裡命名為connect.py from sqlalchemy import create engine from sqlalchemy.ext.declarative import declarative base from sqlalchemy.orm import ...

sqlalchemy 的 ORM 方式使用示例

知乎 使用 sqlalchemy 的 orm 方式運算元據庫是一種怎樣的體驗?答 酸爽!這是 sqlalchemy 的層級圖。不難發現,其中 orm 是最頂級的封裝。orm 基本操作步驟如下 from sqlalchemy importcreate engine engine create engi...