zoukankan      html  css  js  c++  java
  • SQLAlchemy多对多

    创建多对多表

    复制代码
    from sqlalchemy.ext.declarative import declarative_base
    Base=declarative_base()
    
    from sqlalchemy import Column,String,Integer,ForeignKey
    from sqlalchemy.orm import relationship
    
    class Girl(Base):
        __tablename__="girl"
        id = Column(Integer,primary_key=True)
        name=Column(String(32))
    #secondary="Hotel" 表示两个表关联Hotel
        girl2boy = relationship("Boy",secondary="hotel",backref="boy2girl" )
    
    
    class Boy(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:@127.0.0.1:3306/day127?charset=utf8")
    
    Base.metadata.create_all(engine)
    复制代码

    添加多对多数据

    复制代码
    from sqlalchemy.orm import sessionmaker
    from SQL.M_M import engine,Boy
    
    Session=sessionmaker(engine)
    db_session=Session()
    #反向添加
    # boy_obj=Boy(name="kobe")
    # boy_obj.boy2girl =[Girl(name="dva"),Girl(name="xiaoemi")]
    # db_session.add(boy_obj)
    # db_session.commit()
    # db_session.close()
    #正向添加
    # girl_obj=Girl(name="anna",girl2boy=[Boy(name="curry"),Boy(name="green")])
    # db_session.add(girl_obj)
    # db_session.commit()
    # db_session.close()
    #正向查询
    # g_list=db_session.query(Girl).all()
    # for row in g_list:
    #     for item in row.girl2boy:
    #         print(row.id,row.name,item.name)
    
    #反向查询
    b_list=db_session.query(Boy).all()
    for row in b_list:
        for item in row.boy2girl:
            print(row.id,row.name,item.name)
  • 相关阅读:
    Spring Cloud Hystrix Dashboard的使用 5.1.3
    Spring Cloud Hystrix 服务容错保护 5.1
    Spring Cloud Ribbon 客户端负载均衡 4.3
    Spring Cloud 如何实现服务间的调用 4.2.3
    hadoop3.1集成yarn ha
    hadoop3.1 hdfs的api使用
    hadoop3.1 ha高可用部署
    hadoop3.1 分布式集群部署
    hadoop3.1伪分布式部署
    KVM(八)使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机
  • 原文地址:https://www.cnblogs.com/qq849784670/p/10386152.html
Copyright © 2011-2022 走看看