首页 > 数据库技术 > 详细

Flask中的的SQLAlchemy2

时间:2019-02-15 16:21:37      阅读:160      评论:0      收藏:0      [点我收藏+]

昨天更新了博客不知对各位职场的大佬有没有帮助,如果没有看到的请用小手狠狠地戳这里

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:614615@127.0.0.1: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

原文:https://www.cnblogs.com/lzqrkn/p/10384210.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!