zoukankan      html  css  js  c++  java
  • SQLAlchemy的使用---外键ForeignKey数据增删改查

    # 添加数据
    from sqlalchemy.orm import sessionmaker
    from create_table_ForeignKey import engine, Student, School
    
    Session = sessionmaker(engine)
    db_session = Session()
    
    # 插入数据
    sch_obj = School(name='Treasure')
    db_session.add(sch_obj)
    db_session.commit()
    
    
    sch = db_session.query(School).filter(School.name == 'Treasure').first()
    stu_obj = Student(name='徐建', school_id=sch.id)
    db_session.add(stu_obj)
    db_session.commit()
    db_session.close()
    
    #2 添加数据 - 反向relationship
    
    sch_obj = School(name='TreasureShanghai')
    sch_obj.sch2stu = [Student(name='徐建-上海'),
                       Student(name='徐建2-上海')]
    db_session.add(sch_obj)
    db_session.commit()
    db_session.close()
    
    #3.添加数据 - 正向relationship
    stu_obj = Student(name='徐建3', stu2sch=School(name='TreasreShenzhen'))
    db_session.add(stu_obj)
    db_session.commit()
    db_session.close()
    添加数据
    # 修改数据
    from sqlalchemy.orm import sessionmaker
    from create_table_ForeignKey import engine, Student, School
    
    Session = sessionmaker(engine)
    db_session = Session()
    
    sch = db_session.query(School).filter(School.name == 'TreasureShanghai').first()
    db_session.query(Student).filter(Student.school_id == sch.id).delete()
    db_session.commit()
    db_session.close()
    删除数据
    # 修改数据
    from sqlalchemy.orm import sessionmaker
    from create_table_ForeignKey import engine, Student, School
    
    Session = sessionmaker(engine)
    db_session = Session()
    
    sch = db_session.query(School).filter(School.name == 'Treasure').first()
    db_session.query(Student).filter(Student.name == '徐建3').update({'school_id':sch.id})
    db_session.commit()
    db_session.close()
    修改数据
    # 查询数据
    from sqlalchemy.orm import sessionmaker
    from create_table_ForeignKey import engine, Student, School
    
    Session = sessionmaker(engine)
    db_session = Session()
    
    # 查询数据 relationship 正向
    stu = db_session.query(Student).all()
    
    for row in stu:
        print(row.id, row.name, row.stu2sch.name)
    
    
    # 查询数据 relationship 反向
    sch = db_session.query(School).all()
    
    for row in sch:
        print(row.id, row.name, [i.name for i in row.sch2stu])
    查询数据
  • 相关阅读:
    [NOIP2018-普及组] 对称二叉树
    UVA1637 【纸牌游戏 Double Patience】
    [SHOI2002]滑雪-题解
    题解 CF1437E 【Make It Increasing】
    题解 P4331 【[BalticOI 2004]Sequence 数字序列】
    NOIp 2020游记
    题解 P3825 【[NOI2017]游戏】
    题解 P6453 【[LNOI2014]LCA】
    题解 P6453 【[COCI2008-2009#4] F】
    题解 P5779 【[CTSC2001]聪明的学生】
  • 原文地址:https://www.cnblogs.com/Treasuremy/p/10385698.html
Copyright © 2011-2022 走看看