zoukankan      html  css  js  c++  java
  • Django之ORM执行原生sql语句

      django中的ORM提供的操作功能有限,在模型提供的查询API不能满足实际工作需要时,可以在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))

     

     

  • 相关阅读:
    P3822 [NOI2017]整数
    P4630 [APIO2018] Duathlon 铁人两项
    P3230 [HNOI2013]比赛
    P2570 [ZJOI2010]贪吃的老鼠
    P4576 [CQOI2013]棋盘游戏
    P3256 [JLOI2013]赛车
    P3297 [SDOI2013]逃考
    CF487E Tourists
    设置一个双色球脚本(2)并带颜色输出
    设置一个双色球脚本
  • 原文地址:https://www.cnblogs.com/open-yang/p/11222338.html
Copyright © 2011-2022 走看看