ORM 执行原生 SQL 语句(了解)

ORM 执行原生 SQL 语句(了解)

众所周知,Django 的 ORM 效率是比较低的。偶尔或许会有需求,要使用原生 SQL 语句提高数据库的查询效率。

方式 1 object 对象的 raw 方法

ret = models.Book.objects.raw('select * from app01_book;')
for i in ret:
    print(i.title)
print(ret)

方式 2 Django 自带的连接通道(配置的 pymysql)

from django.db import connection
import pymysql
conn = pymysq.connect()
cursor = connection.cursor()
cursor.execute('select * from app01_book;')
print(cursor.fetchall())

方式 3 pymysql

conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='123',
    database='orm02',
    charset='utf8',
)
cursor = conn.cursor(pymysql.cursors.DictCursor)
cursor.execute('select * from app01_book;')
print(cursor.fetchall())
posted @ 2020-03-19 00:40  shuoliuchn  阅读(283)  评论(0编辑  收藏  举报