python怎样实现多表连接查询_django orm使用sql语句,进行多表联合查询(join on,left join)...

本文介绍了如何在Django中使用ORM和Python DB API进行多表连接查询。通过`django.db.connection`获取数据库游标,执行自定义SQL。同时,讨论了在查询中处理百分号的方法,并提供了将查询结果转化为dict或namedtuple的解决方案。
摘要由CSDN通过智能技术生成

背景:

由于使用Manager.raw()无法满足执行sql语句需求,因为我要执行是没有明确指定映射到模型的查询语句。

对象 django.db.connection 代表默认数据库连接。要使用这个数据库连接,调用 connection.cursor() 来获取一个指针对象。然后,调用 cursor.execute(sql, [params]) 来执行该 SQL 和 cursor.fetchone(),或 cursor.fetchall() 获取结果数据。

例如:from django.db import connectiondef my_custom_sql(self):

with connection.cursor() as cursor:

cursor.execute("UPDATE bar SET foo = 1 WHERE baz = %s", [self.baz])

cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz])

row = cursor.fetchone()

return row

避免sql输入方法:cursor.execute("SELECT foo FROM bar WHERE baz = '30%'")

cursor.execute("SELECT foo FROM bar WHERE baz = '30%%' AND id = %s", [self.id])

注意:

若要在查询中包含文本的百分号,你需要在传入参数使用两个百分号。

django中使用多个数据库解决方法

可以使用 django

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值