django使用raw()执行sql语句多表查询

Armbian 国内源一键配置:告别卡顿,加速软件更新 本文详细介绍了如何为Armbian系统配置国内软件源,以解决默认国外源导致的更新缓慢、连接超时等问题。通过手动修改配置文件或使用高效的一键换源脚本,可将源切换至清华大学、阿里云等国内镜像站,实现apt更新与软件安装速度的质的飞跃,让Armbian开发体验更加流畅高效。 阅读详情

1.环境

python3.7

django2.2.16

mysql5.7

2.raw()的用法

  • raw() 执行原始sql,并返回模型实例对象。

  • 可用于多表关联查询

  • 返回结果必须包含实例对象对应数据库表的主键

  • 虽然返回结果是实例对象,但是对于多表关联查询,返回结果可以包含非实例对象(关联查询表)的字段属性。

  • 如果最终查询结果中有的字段不存在于任何实例对象或关联查询对象中则会报错[Cannot resolve keyword ‘XXX’ into field. Choices are: app_label, id, model…],即最终查询的字段必须在关联查询的表中,不能凭空捏造。

3.实例

数据库表:product(产品表) model_replace(产品型号替换表),两个表并没有外键关联关系,只是通过一个product_unique_sign去关联

product

product_id product_name product_model product_unique_sign
1 产品1 model01 1001
2 产品2 model02 1002
3 产品3 model03 1003

model_replace

model_id product_model product_model_replace product_unique_sign
1 model02 model01 1002
2 model02 model03 1002
def search(request):	
	params = ""
	# 根据自己的业务逻辑可以在params添加where的查询条件,拼接到sql_str字符串中
	# 如果是字符串类型的参数,记得在{}的两侧加上单引号,否则会报错。
	
ANSYS Workbench接触分析实战:从算法选择到收敛难题破解 本文深入解析ANSYS Workbench接触分析的核心技术与实战技巧,涵盖四大接触算法选择、收敛难题破解秘籍及典型场景参数设置。通过实际案例演示如何优化接触刚度、pinball区域和非对称行为等关键参数,帮助工程师有效解决结构非线性问题,提升仿真效率和精度。 阅读详情

相关推荐

Django模型中执行原始SQL查询的方法

Django是一个功能强大的Python Web框架,它提供了许高级功能和工具,包括ORM(对象关系映射)层,使得与数据库的交互变得简单和直观。尽管Django的ORM提供了方便的方法来执行数据库操作,但有时候我们可能需要执行原始的SQL查询。方法是Django模型提供的一个便捷方法,用于执行原始的SQL查询并返回结果。确保在构建查询字符串时,正确地转义和格式化输入的值,或者使用参数化查询来避免潜在的安全问题。根据具体的需求和场景,选择适合的方法来执行原始的SQL查询,并确保注意安全问题。

. 636

Django执行原生SQL查询、.raw()方法执行SQL查询

.raw()方法的使用django中提供了一个raw()方法来使用sql语句进行查询 class Person(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) birth_date = models.DateField(max_length=50) Person.objects.raw('SELECT...

走在搬砖的路上! 3809

Django模型(九)

不应用模型,直接使用SQL语句进行增删改查。

Calor13的博客 498

Django之数据库篇(Python

该篇博客先介绍了数据库及其在开发中的地位,然后介绍了数据库在Django中的实际应用(ORM、模型类、数据操作、字段选项的总结、字段查找类型的总结),其次介绍了三种的关系(一对一、一对),最后介绍了分页器。

m0_75048124的博客 2908

django-dynamic-raw-id

django-dynamic-raw-id Django 动态原始 ID 插件是一个易于使用的工具,旨在帮助 Django 开发者更轻松地在模型中创建和使用动态原始 ID 字段。借助 django-dynamic-raw-id,您可以实现对数据库查询性能的优化,并为用户提供更好的输入体验。 项目简介 Django-dynamic-raw-id 是一个开源 Python 库,适用于 Django 框...

gitblog_00082的博客 1018

python django直接执行sql语句

Django提供两种方式执行(performing)原始的SQL查询: (1) 、 Manager.raw() :执行原始查询并返回模型实例 (2) 、 Executing custom SQL directly :直接执行自定义SQL,这种方式可以完全避免数据模型,而是直接执行原始的SQL语句。 三、raw()方法 The raw() manager method can

专注于互联网架构技术,努力成为一名架构师 3万+

django使用sql语句查询

django中提供了一个raw()方法来使用sql语句进行查询 class Person(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) birth_date = models.DateField(max_leng...

你呢的博客 3392

django执行自定义sql语句

一、参考文档和资料 Django 1.2 https://docs.djangoproject.com/en/1.2/topics/db/sql/ 二、知识点总结 Django提供两种方式执行(performing)原始的SQL查询: (1)、Manager.raw():执行原始查询并返回模型实例 (2)、Executing custom SQL directl

u012422446的博客 1万+

Django如何执行原生SQL语句

1、Manager.raw(raw_query,params=None,translations=None) raw_queryset = Person.objects.raw('SELECT * FROM myapp_person'): 这个方法接受一个原始的SQL查询执行它,并返回一个django.db.models.query。RawQuerySet实例。这个RawQueryS...

bocai_xiaodaidai的博客 2732

Django之ORM执行原生sql语句

Django之ORM执行原生sql语句 django中的ORM提供的操作功能有限,在模型提供的API不能满足实际工作需要时,可以在ORM中直接执行原生sql语句Django提供两种方法使用原生SQL进行查询:一种是使用raw()方法,进行原生SQL查询并返回模型实例:另一种是完全避开模型层,直接咨询自定义的SQL语句raw()方法执行原生sql语句: #raw()方法执行原生sql(调用的...

wangjieh的博客 1890

Django操作原生MySQL的方法:MyModel.objects.raw()执行查询语句使用游标cursor对数据库进行 增删改

原生的数据库操作方法 1、使用MyModel.objects.raw()进行 数据库查询操作查询django中,可以使用模型管理器的raw方法来执行select语句进行数据查询 语法: MyModel.objects.raw(sql语句) 用法 MyModel.objects.raw('sql语句') 返回值: RawQuerySet 集合对象 【只支持基础操作,比如循...

**kwargs的博客 4478

Django 执行原生SQL

Django中,你可以使用Raw SQL queries来执行原生的SQL查询。这对于需要进行复杂查询Django的ORM无法满足的查询非常有用。

人生苦短,何妨一试 1620

django使用原生SQL查询示例

django使用原生SQL查询示例 实际开发中,在ORM模型查询API不够用或或者数据量比较大的情况下,我们只能使用原始的SQL语句进行查询。 文章目录django使用原生SQL查询示例1.raw()方法利用RAW方法执行原生的SQL语句RAW()查询可以查询其他的数据RAW()方法自动将查询字段映射到模型字段原生SQL使用参数2.使用extra方法:3.直接执行原生SQL补充: 1.raw()方法 raw()管理器方法用于原始的SQL查询,并返回模型的实例。 需要注意的是:raw()语法查询必须包含主键

淘小欣的博客 1910

Django执行原生 SQL 查询

执行原生查询 Manager.raw(raw_query, params=None, translations=None) raw_query:执行sql语句 params:需要格式化的参数,类型:列 translations:值为字典,将查出来的数据键值对化,根据模型属性声明查询出来的键,如:{模型属性:键} 模型 class Person(models.Model): first_...

qq_42956206的博客 1602

Django使用原生的SQL进行查询

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34345753的博客 1606

Django执行原始SQL语句有几种方式?

django.db.conneciton提供默认数据库连接,使用connection.cursor()方法可以获取数据库游标对象,使用游标对象的execute()方法可以执行原始的SQL语句。虽然使用raw()方法可以通过模型查询到数据中的数据,但是在实际开发中还可能需要对未映射至模型的数据进行查询,或更新、插入、删除,此时无法再使用raw()方法,只能绕过模型直接访问数据库。raw()方法将查询语句中的字段映射至模型字段,因此raw()方法中字段的顺序并不影响查询出的结果。

zy1992As的博客 1347

Django执行原生SQL查询-直接执行自定义SQL

Django框架作为Python中一个强大的Web开发框架,提供了丰富的ORM(对象关系映射)功能,使得开发者能够通过Python对象来操作数据库,而无需编写复杂的SQL语句。然而,在实际开发中,有时我们可能需要直接执行原生SQL查询来满足特定的需求。Django允许我们直接执行原生SQL查询,以便在必要时进行更精细的数据库操作。Django的原生SQL查询功能为开发者提供了在必要时进行更精细的数据库操作的能力。通过结合使用、ORM的raw()

Python老吕的博客 804

Python Django 之 直接执行自定义SQL语句(一)

一、执行自定义SQL方法 1、Executing custom SQL directly 直接执行自定义SQL,这种方式可以完全避免数据模型,而是直接执行原始的SQL语句。 2、Manager.raw() 执行原始查询并返回模型实例 二、Executing custom SQL directly Manager.raw() 远远不够,可直接执行自定义SQL...

weixin_34279061的博客 2191

一周学会Django5 Python Web开发-Django5 ORM执行SQL语句

Django5 ORM执行SQL语句

java1234的博客 1058

Django使用原生SQL语句的两种方式

一、Manager.raw(raw_query,params=None,translations=None) 此方法接受原始SQL查询执行查询,然后返回django.db.models.query.RawQuerySet实例。可以像普通QuerySet一样迭代此RawQuerySet实例以提供对象实例。 例如: class Person(models.Model): fi...

moshanghuali的博客 2995

stata11.rar

stata11.rar

上一篇: 个人报错TypeError: ‘type‘ object is not iterable
下一篇: django查询字段别名使用
神奇洋葱头
博客等级 码龄7年 73粉丝 160原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇洋葱头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值