raw()与modles的类有什么关系?

raw()与modles的类有什么关系?

user_list = WeiboUser.objects.raw(sql)

因为在sql语句里已经包含了要查询的数据表的名称,我试了一下,貌似用sql语句可以查询逻辑库下所有表格的信息,这样的话,raw()与调用的它的WeiboUser类没有什么关系了?是不是用了sql语句,理论上可以在modles下随便找一个类来调用raw()?


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
时间, 2020-02-28 16:01:34

同学,你好。在执行sql语句时,肯定是针对某个表来执行相应的sql语句,因此需要选择相应的类调用raw()

例:查询person表中的数据

 from account.models import person            #导入person类

raw_sql = 'select * from Person'             #原始sql语句

raw_querySet = person.objects.raw(raw_sql)   #xx.objects.raw()执行原始sql

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 提问者 慕丝1539783 #1
    sql = "select * from django_migrations" user_list = WeiboUser.objects.raw(sql) for i in user_list: print(i.app) 这是我自己有试过,甚至可以查询到django框架创建的表django_migrations,跟WeiboUser这个类没有一点关系。包括用Person.objects.raw(sql),Weibo.objects.raw(sql),Comment.objects.raw(sql),只要sql相同,返回的都是相同结果。我也知道用相应的类来调用raw()会比较好理解,只是想知道为什么可以用其他模型的类来调用raw(),或者说用其他模型类来调用会不会有什么BUG。
    2020-02-28 16:30:50
  • 时间, 回复 提问者 慕丝1539783 #2
    同学,你好。django_migrations也是一个表,在使用raw()执行sql语句时,和sql语句中使用的表有关,使用其他模型类来调用是没有影响的,祝学习愉快~~~~
    2020-02-28 18:50:50
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师