介绍生
额外
连接(类似pymysql)
这篇文章给大家分享的是有关django中使用原生sql语句的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
生
#,行方法:(掺杂着原生sql和orm来执行的操作) 时间=res CookBook.objects.raw (& # 39; select id as nid 得到epos_cookbook where id> % & # 39;,, params=(,,)) 打印(res.columns), #, (& # 39; nid& # 39;】 print(类型(res)), #, & lt; class & # 39; django.db.models.query.RawQuerySet& # 39;比; #,在选择里面查询到的数据orm里面的要一一对应 时间=res CookBook.objects.raw (“select  *,得到epos_cookbook") 打印(res) for 小姐:res拷贝: 打印(i.create_date)才能 打印(i)才能 ,, 时间=res CookBook.objects.raw (& # 39; select *,得到epos_cookbook where id> % & # 39;,, params=(,,)) #,后面可以加参数进来 打印(res) for 小姐:res拷贝: #,才能打印(i.create_date) 打印才能(i)
额外
# #,选择提供简单数据 #,SELECT 年龄,,(age 祝辞,18),as is_adult 得到myapp_person; Person.objects.all () .extra(选择={& # 39;is_adult& # 39;:,“age 祝辞,18“}),#,加在选择后面 # #,在提供查询条件 #,SELECT *,得到myapp_person WHERE 第一| | last ILIKE & # 39; jeffrey % & # 39;; Person.objects.all () .extra(=(“第一| | last ILIKE & # 39; jeffrey % & # 39;“]), #,加一个地方条件 # #,表连接其它表 #,SELECT *,得到myapp_book,, myapp_person WHERE last =author_last Book.objects.all () .extra(表=[& # 39;myapp_person& # 39;],,,=[& # 39; last =, author_last& # 39;]), #,从后加面 # #,params添参数 #,! !,错误的方式,! ! 时间=first_name & # 39;乔# 39;,#,如果first_name中有SQL特定字符就会出现漏洞 Person.objects.all () .extra (=[“first =, & # 39; % & # 39;“, %, first_name]) #,正确方式 Person.objects.all () .extra (=[“first =, & # 39; % & # 39;“),, params=[first_name])
连接(类似pymysql)
得到django.db import 连接 ,光标=connection.cursor () ,#如果需要配置数据库 ,#光标=连接[& # 39;默认# 39;].cursor (), , ,cursor.execute (& # 39; select *,得到app01_book& # 39;) ,ret=cursor.fetchall () ,打印(ret) ,#(2,& # 39;小时光& # 39;,,小数(& # 39;10.00 & # 39;),,2),,(3),& # 39;未来可期& # 39;,,小数(& # 39;33.00 & # 39;),,1),,(4,& # 39;打破思维里的墙& # 39;,,小数(& # 39;11.00 & # 39;),,2),,(5,& # 39;时光不散& # 39;,,小数(& # 39;11.00 & # 39;),,3))
注意:如果sql语在句中有用到除法(%),需要使用% %来转义,因为在str中%多用于格式化输出。
感谢各位的阅读!关于“django中使用原生sql语句的示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!