当前位置 : 主页 > 编程语言 > python >

Django(part30)--原生的数据库操作方法

来源:互联网 收集:自由互联 发布时间:2022-06-15
学习笔记,仅供参考 原生的数据库操作方法 使用raw进行查询操作 在django中,可以使用模型管理器的​​raw​​方法来执行select语句进行数据查询 用法 Entry.objects.raw('sql语句') 返回值

学习笔记,仅供参考



原生的数据库操作方法



使用raw进行查询操作



在django中,可以使用模型管理器的​​raw​​方法来执行select语句进行数据查询

  • 用法
Entry.objects.raw('sql语句')



  • 返回值

QuerySet 集合对象



  • 举个例子

在Django shell中敲入如下代码:

books = models.Book.objects.raw('select * from bookstore_book;')
for book in books:
print(book)

输出:

书名:Djangoweb开发实战, 出版社:清华大学出版社
书名:python, 出版社:机械工业出版社
书名:R, 出版社:人民邮电出版社
书名:数据处理, 出版社:清华大学出版社
书名:算法, 出版社:人民邮电出版社
书名:小黄, 出版社:黑山羊出版社



使用游标cursor进行增删改操作



在DJaogo中使用非查询语句(UPDATE、DELETE等)进行操作时,必须使用游标



  • 使用步骤
  • 导入cursor所在的包
  • 创建cursor对象,为保证在出现异常时能释放cursor资源,通常使用with语句进行创建操作


  • 举个例子

在Django shell中敲入如下代码:

from django.db import connection
#将黑山羊出版社的记录的书目改为大黄
with connection.cursor() as cur:
cur.execute('update bookstore_book set title="大黄" where pub="黑山羊出版社";')
#删除id=4的一条记录
with connection.cursor() as cur:
cur.execute('delete from bookstore_book where id=4;')

查看数据库:

mysql> select * from bookstore_book;
+----+-------------------+----------------+------------+-------+
| id | title | pub | exfacPrice | price |
+----+-------------------+----------------+------------+-------+
| 1 | Djangoweb开发实战 | 清华大学出版社 | 35.00 | 40.00 |
| 2 | python | 机械工业出版社 | 35.00 | 40.00 |
| 3 | R | 人民邮电出版社 | 35.00 | 40.00 |
| 5 | 算法 | 人民邮电出版社 | 45.00 | 30.00 |
| 6 | 大黄 | 黑山羊出版社 | 45.00 | 30.00 |
+----+-------------------+----------------+------------+-------+
5 rows in set (0.00 sec)

上一篇:Django(part16)--URL反向解析
下一篇:没有了
网友评论