Django之ORM执行原生sql语句

Django 提供两种方法使用原生SQL进行查询:一种是使用raw()方法,进行原生SQL查询并返回模型实例;另一种是完全避开模型层,直接执行自定义的SQL语句。

 

raw()方法执行原生sql语句:

# raw()方法执行原生sql(调用的类名不区分是谁,只要存在均可执行)

  ret=models.Book.objects.raw(‘select * from app01_book‘)

  # ret=models.Publish.objects.raw(‘select * from app01_book‘)

  for book in ret:

      print(book.book_name)

      # print(book.__dict__)

 

直接执行自定义原生sql语句:

#直接执行自定义原生sql(完全避开模型层,类似pymysql操作)

  from django.db import connection

  cursor=connection.cursor()

  cursor.execute(‘select * from app01_book‘)

  ret=cursor.fetchall()

  print(ret)#((2, ‘小时光‘, Decimal(‘10.00‘), 2), (3, ‘未来可期‘, Decimal(‘33.00‘), 1), (4, ‘打破思维里的墙‘, Decimal(‘11.00‘), 2), (5, ‘时光不散‘, Decimal(‘11.00‘), 3))

Django之ORM执行原生sql语句

上一篇:赢咖3主管(赢咖3主管)


下一篇:有趣的生成器函数例子