用Django操作原生MySQL的方法:MyModel.objects.raw()执行查询语句和使用游标cursor对数据库进行 增删改

本文介绍了在Django中如何使用原生SQL语句进行数据库查询和增删改操作,包括使用MyModel.objects.raw()方法执行select语句及利用游标cursor执行UPDATE、DELETE等SQL语句的具体步骤。

原生的数据库操作方法

  • 1、使用MyModel.objects.raw()进行 数据库查询操作查询

    • 在django中,可以使用模型管理器的raw方法来执行select语句进行数据查询
    1. 语法:
      • MyModel.objects.raw(sql语句)
    2. 用法
      • MyModel.objects.raw('sql语句')
    3. 返回值:
      • RawQuerySet 集合对象 【只支持基础操作,比如循环】
  1. 示例

    books = models.Book.objects.raw('select * from bookstore_book')
    
    for book in books:
        print(book)
    
  • 2、使用django中的游标cursor对数据库进行 增删改操作

    • 在Django中可以使用 如UPDATE,DELETE等SQL语句对数据库进行操作。

    • 在Django中使用上述非查询语句必须使用游标进行操作

    • 使用步骤:

      1. 导入cursor所在的包

        • Django中的游标cursor定义在 django.db.connection包中,使用前需要先导入
        • 如:
          • from django.db import connection
      2. 用创建cursor类的构造函数创建cursor对象,再使用cursor对象,为保证在出现异常时能释放cursor资源,通常使用with语句进行创建操作

        • 如:

          from django.db import connection
          with connection.cursor() as cur:
              cur.execute('执行SQL语句')
          
      • 示例

        # 用SQL语句将id 为 10的 书的出版社改为 "XXX出版社"
        from django.db import connection
        with connection.cursor() as cur: 
            cur.execute('update bookstore_book set pub_house="XXX出版社" where id=10;')
        
        with connection.cursor() as cur:
            # 删除 id为1的一条记录
            cur.execute('delete from bookstore_book where id=10;')
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值