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