问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

django如何查询多个表的数据(2023年最新解答)

发布网友 发布时间:2024-09-29 04:00

我来回答

1个回答

热心网友 时间:2024-10-07 10:23

导读:本篇文章首席CTO笔记来给大家介绍有关django如何查询多个表的数据的相关内容,希望对大家有所帮助,一起来看看吧。

Django表关联对象及多表查询

首先建立Student,Dpartment,Course,Stu_info表

一对多表关系数据的添加:

1.第一种方式就是跟之前的一样,用传参的方法添加,需要注意的是外键的值必须是关联表中已经存在的值.

2.第二种方式是用的属性赋值的方式,因为我们在模型类有定义了一个department的属性,而这个属性的对象的类型必须是department表的类实例对象

表关联对象的访问:

Student的模型类中我们有定义department的属性,所以当我们去访问的时候,可以直接通过student.department的形式去找到某个学生的所属学院是哪个.

那么如果我们也希望在在访问某个学院的实现对象的学生的时候改怎么访问呢???

表关联对象的访问:

可以在定义时设置related_name参数来覆盖foo_set的名称.

clear()从关联的对象集中删除所有的对象

多表查询----跨关联关系的查询:

Django提供一种强大而又直观的方式来“处理”查询中的关联关系,它在后台自动帮你处理JOIN。若要跨越关联关系,只需使用关联的模型字段的名称,并使用双下划线分隔,直至你想要的字段:

它还可以反向工作。若要引用一个“反向”的关系,只需要使用该模型的小写的名称。

Django如何多表联合统计查询

如果你觉着使用自带ORM查询费劲的话。直接获取数据库连接,然后执行sql语句。

defmy_custom_sql():fromdjango.dbimportconnection,transactioncursor=connection.cursor()#数据修改操作——提交要求cursor.execute("UPDATEbarSETfoo=1WHEREbaz=%s",[self.baz])transaction.commit_unless_managed()#数据检索操作,不需要提交cursor.execute("SELECTfooFROMbarWHEREbaz=%s",[self.baz])row=cursor.fetchone()returnrow

多数据

fromdjango.dbimportconnectionscursor=connections['my_db_alias'].cursor()#Yourcodehere...transaction.commit_unless_managed(using='my_db_alias')

通常我们不需要手动调用

transaction.commit_unless_managed(

),我们可以这样做:

@commit_on_successdefmy_custom_sql_view(request,value):fromdjango.dbimportconnection,transactioncursor=connection.cursor()#Datamodifyingoperationcursor.execute("UPDATEbarSETfoo=1WHEREbaz=%s",[value])#Sincewemodifieddata,markthetransactionasdirtytransaction.set_dirty()#Dataretrievaloperation.Thisdoesn'tdirtythetransaction,#sonocalltoset_dirty()isrequired.cursor.execute("SELECTfooFROMbarWHEREbaz=%s",[value])row=cursor.fetchone()returnrender_to_response('template.html',{'row':row})

Django怎么多表联合查询

先让我们回忆一下在第五章里的关于书本(book)的数据模型:

1

fromdjango.dbimportmodels

classPublisher(models.Model):

name=models.CharField(max_length=30)

address=models.CharField(max_length=50)

city=models.CharField(max_length=60)

state_province=models.CharField(max_length=30)

country=models.CharField(max_length=50)

website=models.URLField()

def__unicode__(self):

returnself.name

classAuthor(models.Model):

first_name=models.CharField(max_length=30)

last_name=models.CharField(max_length=40)

email=models.EmailField()

def__unicode__(self):

returnu'%s%s'%(self.first_name,self.last_name)

classBook(models.Model):

title=models.CharField(max_length=100)

authors=models.ManyToManyField(Author)

publisher=models.ForeignKey(Publisher)

publication_date=models.DateField()

def__unicode__(self):

returnself.title

如我们在第5章的讲解,获取数据库对象的特定字段的值只需直接使用属性。例如,要确定ID为50的书本的标题,我们这样做:

frommysite.books.modelsimportBook

b=Book.objects.get(id=50)

b.title

u'TheDjangoBook'

但是,在之前有一件我们没提及到的是表现为ForeignKey或ManyToManyField的关联对象字段,它们的作用稍有不同。

访问外键(ForeignKey)值

当你获取一个ForeignKey字段时,你会得到相关的数据模型对象。例如:

b=Book.objects.get(id=50)

b.publisher

Publisher:ApressPublishing

b.publisher.website

结语:以上就是首席CTO笔记为大家整理的关于django如何查询多个表的数据的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django如何查询多个表的数据的相关内容别忘了在本站进行查找喔。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
缘起缘灭美文 个人取得交易手续费返还收入需缴个人所得税吗 个人所得税返还手续费交增值税吗 输血有什么不良反应? 总是梦见很恐怖的快速飞 梦里面还知道自己在做梦想赶紧醒来 问题... 武汉商学院地址是什么 武汉商学院交通方便吗。离市区远吗 武汉商学院地理位置很偏吗 ...2013年10月10日, 农历2013年9月6日, 阴历二零一三癸巳年九月初六日12... 男孩 出 生于2013年10月10日(农历九月初六)凌晨3:07分五行缺什么啊? 逸动dt钥匙功能介绍逸动dt钥匙更换电池方法 VBA学习笔记71: Select多表查询 如果QQ号被腾讯封了不能登陆QQ安全中心,怎么解除密保卡 我QQ被冻结了,使用至尊宝要我以前那张密保卡发消息 ,可我那张卡早弄 ...申请冻结了。解冻需要改密码。改密码又需要密保卡。密保卡我N面前就... inglot是什么品牌牌子_哪个国家的_什么档次 mua高光是什么牌子 PSP2000 我的电池好想不能用了,是这种情况 我一直没怎么玩 今天拿出来... 我的PSP2000放了一段时间没开机,结果一开机玩游戏,所有游戏都储存不了... A大 推荐 名人 达人 化妆 你是怎样看待那些美妆达人的呢? 少儿社保卡怎么补缴? 淘宝客服辱骂顾客应该怎么处理?有哪些处罚? oppo手机报价是2459的是哪一款 oppor8007这部手机出了几个月了? 商家辱骂顾客12315是否会管 逸动电瓶多久需要更换? App的使用习惯会影响大学生的婚育观,你的婚恋观受到影响了么?_百度知... 又快又好听的英文歌 南华大学王牌专业排名一览表 比亚迪汽车前机拉线拉不动了 请朋友们帮助推荐一些好听的抒情的歌曲,谢谢! 想找一首歌,请朋友们帮忙。 请朋友们推荐些好听的歌曲歌名 ...的MP3歌曲,想重新下载但不知道歌曲名,请朋友帮我找找歌曲名... 为什么叫非物质文化遗产 南昌哪里可以买到 刺蜜 是中药材 南昌哪里可化验中药材 奶茶原料哪个牌子 新余有收草药的店吗 第二代逸动电子节气门体怎样自学习? 第二代逸动XT电子节气门体怎样自学习? 电镀厂废气排放标准_国家电镀环保废气处理排放执行标准要求 第二代逸动如何装配电子节气门体? 西铁城nh8240 57e怎么检定是否正品 电镀废水是什么意思? 奥拉星魂之结晶怎么得 魂之结晶有什么用 奥拉星乾坤修罗神怎么打 打法 长安逸动 Ev300行驶中电池灯和乌龟灯同时亮起,熄火后重新起动就好?_百度... 奥拉星炎之结晶怎么得