1. 程式人生 > >Flask中的的SQLAlchemy2

Flask中的的SQLAlchemy2

查詢 反向 ima href 報錯 play ack 洋洋 utf8

昨天更新了博客不知對各位職場的大佬有沒有幫助,如果沒有看到的請用小手狠狠地戳這裏

Flask中的的SQLAlchemy

今天呢,我們來說一下多對多表的關系,知道不?開始之前我先說一個事,昨晚更新了博客之後我夢到一位女粉絲走到我面請輕輕的吻了我,嘖嘖嘖,味可好了~~~~

1.多對多表關系

技術分享圖片
from sqlalchemy import Column,Integer,String,ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base
Base 
= declarative_base() class Girls(Base): __tablename__ = ‘girl‘ id = Column(Integer,primary_key=True) name = Column(String(32)) #表的關系 girl2boy = relationship("Boys",secondary = "hotel",backref = "boy2girl") class Boys(Base): __tablename__ = ‘boy‘ id = Column(Integer,primary_key=True
) name = Column(String(32)) class Hotel(Base): __tablename__=‘hotel‘ id = Column(Integer,primary_key=True) girl_id = Column(Integer,ForeignKey("girl.id")) boy_id = Column(Integer,ForeignKey("boy.id")) from sqlalchemy import create_engine #這裏不懂得,戳紫色的字!! engine = create_engine("
mysql+pymysql://root:[email protected]:3306/day127?charset=utf8") Base.metadata.create_all(engine)
View Code

2.簡單的操作

技術分享圖片
#curd_M2M.py

from sqlalchemy.orm import sessionmaker
from SQL.curd_M2m import engine
from SQL.curd_M2m import Boys,Girls,Hotel
Session = sessionmaker(engine)
db_session = Session()

#t通過想Boy添加數據添加girl和hotel數據。relationship反向
boy = Boys(name="李誌強")
boy.boy2girl = [Girls(name="哇哈哈"),Girls(name="喜洋洋")]
db_session.add(boy)
db_session.commit()
db_session.close()


#t通過想Girl添加數據添加boy和hotel數據。relationship正向
girl_obj = Girls(name="李二短",girl2boy=[Boys(name="任二狗"),Boys(name="任夢")])
db_session.add(girl_obj)
db_session.commit()
db_session.close()



# 查詢 正向查詢
ret = db_session.query(Girls).all()
for girl in ret:
    for boy in girl.girl2boy:
#這裏說一下,註意表的結構,有很多的小的細節不註意就會報錯,查到girl信息,再次遍歷的時候註意girl.girl2boy,正向查詢
        print(girl.name , boy.name)

# 查詢 反向查詢
ret = db_session.query(Boys).all()
for boy in  ret:
    for girl in boy.boy2girl:
        print(boy.name,girl.name)
View Code

Flask中的的SQLAlchemy2