Django中使用原生SQL

2022-04-28 14:27:13 字數 1825 閱讀 1566

使用extra:結果集修改器,一種提供額外查詢引數的機制

models.book.objects.filter(publisher__name='人民出版社').extra(where=['price>50'])

models.book.objects.filter(publisher__name='人民出版社', price__gt=50)

models.book.objects.extra(select=)

使用raw:執行原始sql並返回模型例項

book.objects.raw('select * from hello_book')  # 返回模型例項

執行自定義sql語言:connection

from django.db import connection

cursor=connection.cursor()

# 插入操作

cursor.execute("insert into hello_author(name) values('錢鍾書')")

# 更新操作

cursor.execute("update hello_author set name='abc' where name='bcd'")

# 刪除操作

cursor.execute("delete from hello_author where name='abc'")

# 查詢操作

cursor.execute("select * from hello_author")

raw=cursor.fetchone() # 返回結果行游標直讀向前,讀取一條

cursor.fetchall() # 從游標位置開始,讀取所有

使用extra:結果集修改器,一種提供額外查詢引數的機制

models.book.objects.filter(publisher__name='人民出版社').extra(where=['price>50'])

models.book.objects.filter(publisher__name='人民出版社', price__gt=50)

models.book.objects.extra(select=)

使用raw:執行原始sql並返回模型例項

book.objects.raw('select * from hello_book')  # 返回模型例項

執行自定義sql語言:connection

from django.db import connection

cursor=connection.cursor()

# 插入操作

cursor.execute("insert into hello_author(name) values('錢鍾書')")

# 更新操作

cursor.execute("update hello_author set name='abc' where name='bcd'")

# 刪除操作

cursor.execute("delete from hello_author where name='abc'")

# 查詢操作

cursor.execute("select * from hello_author")

raw=cursor.fetchone() # 返回結果行游標直讀向前,讀取一條

cursor.fetchall() # 從游標位置開始,讀取所有

Django中使用原生Sql

在django中使用原生sql主要有以下幾種方式 一 extra 結果集修改器,一種提供額外查詢引數的機制 二 raw 執行原始sql並返回模型例項 三 直接執行自定義sql 這種方式完全不依賴model,前兩種還是要依賴於model 例項 使用extra 1 book.objects.filter...

在Django中使用原生sql

raw row方法 摻雜著原生sql和orm來執行的操作 res cookbook.objects.raw select id as nid from epos cookbook where id s params 1,print res.columns nid print type res 在se...

django中使用原生sql語句

row方法 摻雜著原生sql和orm來執行的操作 res cookbook.objects.raw select id as nid from epos cookbook where id s params 1 print res.columns nid print type res 在select...