gpt4 book ai didi

django中使用原生sql语句的方法步骤

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 35 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章django中使用原生sql语句的方法步骤由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

raw

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 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)) # <class 'django.db.models.query.rawqueryset' >
 
# 在 select 里面查询到的数据orm里面的要一一对应
res = cookbook.objects.raw( "select * from epos_cookbook" )
print(res)
for i in res:
   print(i.create_date)
   print(i)
  
res = cookbook.objects.raw( 'select * from epos_cookbook where id>%s' , params=[1, ])
# 后面可以加参数进来
print(res)
for i in res:
   # print(i.create_date)
   print(i)

extra

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
## select 提供简单数据
# select age, (age > 18) as is_adult from myapp_person;
person.objects. all ().extra( select ={ 'is_adult' : "age > 18" }) # 加在 select 后面
 
## where 提供查询条件
# select * from myapp_person where first || last ilike 'jeffrey%' ;
person.objects. all ().extra( where =[ "first||last ilike 'jeffrey%'" ]) # 加一个 where 条件
 
## table 连接其它表
# select * from myapp_book, myapp_person where last = author_last
book.objects. all ().extra( table =[ 'myapp_person' ], where =[ 'last = author_last' ]) # 加 from 后面
 
## params添参数
# !! 错误的方式 !!
first_name = 'joe' # 如果first_name中有sql特定字符就会出现漏洞
person.objects. all ().extra( where =[ "first = '%s'" % first_name])
# 正确方式
person.objects. all ().extra( where =[ "first = '%s'" ], params=[first_name])

connection(类似pymysql)

?
1
2
3
4
5
6
7
8
9
10
11
12
from django.db import connection
 
  cursor = connection . cursor ()
  # 如果需要配置数据库
  # cursor = connection [ 'default' ]. 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))

注意:如果在sql语句中有用到除法(%),需要使用%%来转义,因为在str中%多用于格式化输出.

到此这篇关于django中使用原生sql语句的方法步骤的文章就介绍到这了,更多相关django使用原生sql语句内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/weixin_46237597/article/details/112177897 。

最后此篇关于django中使用原生sql语句的方法步骤的文章就讲到这里了,如果你想了解更多关于django中使用原生sql语句的方法步骤的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com