django执行原生SQL语句
·
1、原生SQL用法概述
django可以执行原生SQL语句,主要分读和写两类,用法如下:
- 读(查):xxxModel.object.raw()
- 写(增删改):connection.cursor()
2、应用案例
2.1 django执行原生SQL 读 操作
django内置方法中的raw(),可以帮助我们直接执行SQL的原生语句,返回QuerySet 集合对象。
# appName: test
# tableName in model.py: Book
# tableName in DB: test_book
from model import Book
books_obj_list = Book.objects.raw('select distinct id, book_name from test_book')
for book_obj in books_obj_list:
print(book_obj.id, book_obj.book_name)
2.2 django执行原生SQL 写 操作
django中使用游标cursor对数据库进行增删改操作,创建cursor类的构造函数创建cursor对象,再使用cursor对象,为保证在出现异常时能释放cursor资源,通常使用with语句进行创建操作
- 常用语法如下:
from django.db import connection
with connection.cursor() as cur:
cur.execute('SQL语句')
- 举例:
# 用SQL语句将id 为 9527 的书的出版社改为 "星爷出版社"
from django.db import connection
# UPDATE
with connection.cursor() as cur:
cur.execute('update test_book set publishing_house="星爷出版社" where id=9527;')
# DELETE
with connection.cursor() as cur:
# 删除 id为10 的一条记录
cur.execute('delete from test_book where id=10;')
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)