Django数据库操作(执行原生SQL的几种方法)

时间:2022-01-30 23:11:10 类型:python
字号:    

  1.使用extra方法

  解释:结果集修改器,一种提供额外查询参数的机制

  说明:依赖model模型

  用在where后:

  News.objects.filter(id=1).extra(where=["title='生命的意义'"])

  用在select后

  News.objects.filter(id=1).extra(select={"count":"select count(*) from book"})

  2.使用raw方法

  解释:执行原始sql并返回模型

  说明:依赖model多用于查询

  用法:

  student= Book.objects.raw("select * from student")

  for item in student:

  print(item.name)

  3.执行自定义SQL

  解释:利用游标执行

  导入:from django.db import connection

  说明:不依赖model

  用法:

  from django.db import connection

  cursor = connection.cursor()

  #插入

  cursor.execute("insert into student(name) values('小强')")

  #更新

  cursor.execute("updatestudent set name='小刚' where id=1")

  #删除

  cursor.execute("delete from student where name='小王'")

  #查询

  cursor.execute("select * from student")

  #返回一行

  raw = cursor.fetchone()

  print(raw)

  # #返回所有

  # cursor.fetchall()


<