zoukankan      html  css  js  c++  java
  • 使用ORM新增数据在Mysql中

    【前言】

    想要使用ORM在数据库中进行操作数据,前提是已经新建了ORM模型 ;就是我们之前已经搭建的模型https://www.cnblogs.com/xinhua19/p/15038353.html

    【ORM操作步骤】

    • 构造ORM模型对象
    • 添加到session
    • 提交到数据库
    • 出现异常,回滚事务(可选)

    【构造ORM模型对象】

    代码例子
    
    user_obj = User(
    username="use1",
    password="123456",
    real_name = "用户1",
    age=12
    )

    【添加到session】

    #  添加1个对象
    session.add(user_obj)
    
    #  添加多个对象
    session.add_all([user1,user2,user3])

    【session的作用】

    • 建立与数据库之间的会话
    • 使用session对数据库中的数据进行增删改查
    • 使用session进行事务控制(提交和回滚)
    • 使用完后需要关闭它  session.close()

     【session的创建】

    有两种方法,下图代码示例

    # 方法一 实例化session
    from sqlalchemy.orm import Session
    
    with Session(engine) as session:
        session.add(User())
        session.commit()
    
    #  方法二 使用工厂函数创建
    from sqlalchemy.orm import sessionmaker
    
    Session = sessionmaker(engine)
    
    with Session.begin()  as session:
        session.add(User())

    【数据提交到数据库】

    代码例子
    
    with Session(engine) as  session:
        session.add(user_obj)
        session.add_all([user1,user1,user1])
        session.commit()

    【出现异常,回滚事务】

    代码例子
    
    
    with Session(engine) as session:
        session.begin()
        try:
            session.add(user1)
            session.add(user2)
        except:
            session.rollback()
            raise
        else:
            session.commit()

    【Session对象中其他的常用方法】

    1. excute(statement, params=None,*args)   执行SQL查询

    2. delete(instance)   物理删除数据

    3. get(entity,idnet,*args)  根据主键返回满足条件的ORM对象/None

    4. query(*entities,**kwargs)

    使用ORM查询,返回Query对象

  • 相关阅读:
    值得收藏的十二条Jquery随身笔记
    都来中大奖啦~双色球随机算法!
    巧妙使用div+css模拟表格对角线
    介绍两个非常好用的Javascript内存泄漏检测工具
    JQuery模仿淘宝天猫魔盒抢购页面倒计时效果
    JQuery巧妙利用CSS操作打印样式
    boost编译随笔
    Dev-C++安装第三方库boost
    比特币源码分析--C++11和boost库的应用
    QT +go 开发 GUI程序
  • 原文地址:https://www.cnblogs.com/xinhua19/p/15054956.html
Copyright © 2011-2022 走看看