• 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])
    查询数据
  • 相关阅读:
    Web Accessibility All In One
    CSS 3D Card Effect All In One
    Sololearn All In One
    In modern js you don't need void 0 anymore All In One
    医学科技解剖数字人 All In One
    SPAR19 航班航迹追踪 All In One
    HTML5 Games Development Foundation All In One
    HTML5 Canvas Games All In One
    python 中 如何提取或者删除列表的最后几个元素(适用于元组、字符串序列)
    c语言中输出整数类整型变量的长度(所占的字节数)
  • 原文地址:https://www.cnblogs.com/Treasuremy/p/10385698.html
Copyright © 2020-2023  润新知