day60 数据库操作一对多,多对多

 

单表操作:

-全部查询   models.表名.objects.all() 

-条件查询  models.表名.objects.filter(name='seven')

-单条查询  不存在就报错(不推荐)models.表名.objects.get(id=123)

-字典查询  字典名={"name":"lala"}    models.表名.objects.filter(**字典名)

-个数查询   models.表名.objects.filter(name='seven').count()

-降序升序排列    models.表名.objects.filter(name='seven').order_by('id')     models.Tb1.objects.filter(name='seven').order_by('-id')


多表操作:

两张表FK关联的时候默认跟ID关联,如果不想用默认的ID进行关联,也可以进行指定:

("province",to_filed="要指定的列名")

自己指定的关联,要加上唯一:

(unique=True)

最终:

class Province(models.Model):
            name = models.

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Django应用中操作数据库的过滤器可以分为以下几类: 1.比较运算符: 比较运算符用于比较数据库中的字段和给定的值之间的关系。比较运算符包括:等于(exact)、不等于(ne)、大于(gt)、大于等于(gte)、小于(lt)、小于等于(lte)。 2.包含运算符: 包含运算符用于匹配字段值是否包含给定的值。包含运算符包括:包含(contains)、不包含(icontains)。 3.逻辑运算符: 逻辑运算符用于组合多个过滤条件。逻辑运算符包括:与(and)、或(or)、非(not)。 4.时间日期运算符: 时间日期运算符用于过滤时间和日期类型的字段。时间日期运算符包括:年(year)、月(month)、日(day)、周(week_day)、小时(hour)、分钟(minute)、秒(second)、毫秒(microsecond)。 5.其他运算符: 其他运算符包括:空值(isnull)、正则表达式(regex、iregex)、范围(range)、IN(in)、以及一些扩展运算符,如搜索(search)等。 希望这能回答您的问题,如果您还有其他问题需要帮忙解答,我将会尽力帮助您。 ### 回答2: 在Django应用中,可以使用数据库的过滤器分类数据。下面是几种常用的过滤器分类: 1. 字段过滤器:通过查询字段的值来过滤数据。常用的过滤器有: - exact:精确匹配,例:Model.objects.filter(name__exact='abc') - iexact:不区分大小写的精确匹配,例:Model.objects.filter(name__iexact='abc') - contains:模糊匹配,例:Model.objects.filter(name__contains='abc') - icontains:不区分大小写的模糊匹配,例:Model.objects.filter(name__icontains='abc') - in:在一个列表中匹配,例:Model.objects.filter(id__in=[1, 2, 3]) - gt:大于,例:Model.objects.filter(age__gt=18) - lt:小于,例:Model.objects.filter(age__lt=18) 2. 时间过滤器:用于对日期和时间字段进行过滤,常用的过滤器有: - date:根据日期进行过滤,例:Model.objects.filter(create_date__date='2021-01-01') - year/month/day/week/day_of_week/hour/minute/second:根据指定时间单位进行过滤,例:Model.objects.filter(create_date__year=2021) - range:指定一个范围进行过滤,例:Model.objects.filter(create_date__range=('2021-01-01', '2021-12-31')) 3. 关联过滤器:用于对关联字段进行过滤,常用的过滤器有: - foreign key:通过外键字段进行过滤,例:ModelA.objects.filter(modelb__name='abc') - many-to-many:通过多对多关联字段进行过滤,例:ModelA.objects.filter(modelbs__name='abc') 4. Q对象:通过逻辑运算符组合多个过滤条件,常用的逻辑运算符有: - |:或运算,例:Model.objects.filter(Q(name='abc') | Q(age=18)) - &:与运算,例:Model.objects.filter(Q(name='abc') & Q(age=18)) - ~:非运算,例:Model.objects.filter(~Q(name='abc')) 以上是在Django应用中操作数据库的过滤器分类。根据不同的需求,可以选择合适的过滤器来过滤数据库中的数据。 ### 回答3: 在Django应用中,操作数据库的过滤器分类主要有以下几种: 1. 基本过滤器:用于根据特定字段或条件进行数据查询和筛选。常用的基本过滤器包括`filter()`用于筛选满足条件的数据集合,`exclude()`用于排除满足条件的数据,`get()`用于获取单个满足条件的数据。 2. 比较过滤器:用于对字段进行比较操作,包括`exact`精确匹配,`iexact`不区分大小写的精确匹配,`contains`包含指定字符串,`icontains`不区分大小写的包含指定字符串等。 3. 逻辑过滤器:用于对查询条件进行逻辑关系操作,包括`Q`对象用于构建复杂的查询条件,`&`表示并且,`|`表示或者,`~`表示非。 4. 聚合过滤器:用于对数据集合进行聚合计算,包括`count()`用于统计满足条件的数据数量,`sum()`用于求和,`avg()`用于求平均值等。 5. 时间和日期过滤器:用于对时间和日期字段进行筛选,包括`date`根据日期进行筛选,`year`根据年份进行筛选,`month`根据月份进行筛选等。 6. 字段过滤器:用于对模型字段的特定部分进行筛选,包括`field__exact`用于精确匹配该字段,`field__contains`用于包含指定字符串的筛选等。 通过组合和灵活运用这些过滤器,我们可以实现在Django应用中对数据库进行各种精确和灵活的数据查询和操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Andy393939

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

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

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

打赏作者

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

抵扣说明:

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

余额充值