简介:许多朋友问有关Django Orms如何查询的问题。本文的首席CTO笔记将为您提供详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!
我没有使用过djongo,但我认为应该几乎相同。这种类型的过滤器或方法返回查询对象,因此应通过过滤器连续使用。
例如,您写了a = search.objects.filter(xxx),然后要添加另一个条件以继续A.Filter(YY)。
可以使用逻辑关系操作员
例如:
选择 *来自table_name
其中(条件1和条件2)找到两种情况的结果,
或者
选择 *来自table_name
其中(条件1或条件2)查询结果在两个条件下符合任何条件。
第一个构建学生,分区,课程,stu_info表
添加一对多表的关系数据:
1.第一种方法是将其添加为上一个方法。应该注意的是,外键的值必须是关联表中存在的存在。
2.第二种方法是属性分配的方法,因为我们具有模型类中部门的属性,并且该属性的对象的类型必须是部门表类型的实例对象
访谈与对象相关的对象:
我们具有定义学生类别类别的部门的属性,因此,当我们访问它时,我们可以直接找到可以通过Student.Deppartment的形式直接找到学生附属学院的大学。
那么,如果您拜访访问一所大学的学生时我们也想改变呢?
访谈与对象相关的对象:
您可以在定义期间设置相关的_name参数,以涵盖foo_set的名称。
clear()将所有对象集中在关联对象
多桌查询----交叉关系查询:
Django提供了一种强大而直观的方式来“处理”查询中相关关系。它会自动帮助您处理后台加入。如果您想跨越关系,则只需要使用关联的模型字段的名称并使用双重字段的行进行分开,直到您想要的字段:
它也可以反向起作用。要引用“反向”关系,您只需要使用模型的小写字母的名称即可。
版权属于作者,请以任何形式与作者联系。
作者:Petanne(来自Douban)
来源:
1.多表连接查询:我觉得Django太NX了。
A类(Models.Model):
name = models.charfield(u'name')
B类(Models.Model):
aa = models.foreignkey(a)
b.Objects.filter(aa__name__contains ='searchtitle')
1.5反向查询,构成记录1.5,我觉得Django夫人是NX。
A类(Models.Model):
name = models.charfield(u'name')
B类(Models.Model):
aa = models.Foreignkey(a,Ressect_name =“ fan”)
bb = model.charfield(u'name')
检查答:a.Objects.filter(fan__bb ='xxxx'),都知道相关的_name的作用。,易于使用!交叉剖面
2.当从QuerySet选择条件时,Filter Said =,排除表示!=。
querySet.distinct()重复
__ECACT精确地等于“ AAA”
__iexact精确地等于忽略下部案例iLike'AAA'
__Contains包含“%AAA%”之类的
__icontains包含忽略较低的情况“%aaa%”,但对于sqlite,包含的效果等同于icontains。
__GT大于
__ GTE大于等于
__lt少于
__lte不等于
__in存在于列表范围内
__ startswith从...开始
__ ISTARTSWITH
__以。。结束
__EINDSWITH ...结束,忽略下部案例
__RANGE在...
__年约会年度一年
__月份日期字段的月份
__日期日期日
__isnull = true/false
如果您觉得自己使用自己的ORM来查询。直接获取数据库连接,然后执行SQL语句。
def my_custom_sql():从django.db导入连接,transaction cursor = connect.cursor()#data修改操作-submit requiend cursor.execute.execute(“ update bar set foo = foo = 1 with with white baz raz])trassaction.commit_unless_managed()操作,无需提交cursor.execute(“从bar where where bar =%s”,[self.baz])行= cursor.fetchone()
多-DATA
来自django.db import connectionscursor = connections ['my_db_alias']。光标()#your代码... transaction.commit_unless_managed(use ='my_db_alias')
通常我们不需要手动致电
transaction.commit_unless_maned(
), 我们做得到:
baz =%s“,[value])row = cursor.fetchone()return render_to_response('template.html',{'row':row':row})
QueryBuilder Builder = Dao.QueryBuilder();
构建器Where()。等式(“字段名称1”,“条件1”)。
and.eq(“”“字段名称1”);Builder .Query();
?如果您识别我的答案,请单击[接受作为满意的答案]按钮
~~朋友在手机上询问问题可以评估客户端右上角的点[满意]。
结论:以上是有关Django的ORM如何由COTO注释为每个人组织的相关内容的摘要,我希望它对您有所帮助!如果您解决您的问题,请与更多关心此的朋友分享问题?