Flask中的的SQLAlchemy2
阿新 • • 發佈:2019-02-15
查詢 反向 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 BaseView Code= 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)
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