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)
  • 相关阅读:
    Docker部署Django项目+Nginx+Fluend日志收集 和redis、memcached、RabbitMQ、Celery
    Json+Ajax相关
    Django之Form、ModelForm 组件
    Django之WSGI 和MVC/MTV
    Django知识点梳理
    Django信息安全相关之CSRF和XSS
    Django之中间件
    Django之自定义分页
    Django之cookie+session
    Python打包方法——Pyinstaller
  • 原文地址:https://www.cnblogs.com/zhangqing979797/p/10384837.html
Copyright © 2011-2022 走看看