Python 20th Day
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 20th Day相关的知识,希望对你有一定的参考价值。
Model
-
创建表
-
from django.db import models class userinfo(models.Model): name = models.CharField(max_length=30) email = models.EmailField() memo = models.TextField()
- 基本操作
-
# 增 # # models.Tb1.objects.create(c1=‘xx‘, c2=‘oo‘) 增加一条数据,可以接受字典类型数据 **kwargs # obj = models.Tb1(c1=‘xx‘, c2=‘oo‘) # obj.save() # 查 # # models.Tb1.objects.get(id=123) # 获取单条数据,不存在则报错(不建议) # models.Tb1.objects.all() # 获取全部 # models.Tb1.objects.filter(name=‘seven‘) # 获取指定条件的数据 # 删 # # models.Tb1.objects.filter(name=‘seven‘).delete() # 删除指定条件的数据 # 改 # models.Tb1.objects.filter(name=‘seven‘).update(gender=‘0‘) # 将指定条件的数据更新,均支持 **kwargs # obj = models.Tb1.objects.get(id=1) # obj.c1 = ‘111‘ # obj.save() # 修改单条数据
- 双下划线
- 限定条件
-
# 获取个数 # # models.Tb1.objects.filter(name=‘seven‘).count() # 大于,小于 # # models.Tb1.objects.filter(id__gt=1) # 获取id大于1的值 # models.Tb1.objects.filter(id__lt=10) # 获取id小于10的值 # models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值 # in # # models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据 # models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in # contains # # models.Tb1.objects.filter(name__contains="ven") # models.Tb1.objects.filter(name__icontains="ven") # icontains大小写不敏感 # models.Tb1.objects.exclude(name__icontains="ven") # range # # models.Tb1.objects.filter(id__range=[1, 2]) # 范围bettwen and # 其他类似 # # startswith,istartswith, endswith, iendswith, # order by # # models.Tb1.objects.filter(name=‘seven‘).order_by(‘id‘) # asc # models.Tb1.objects.filter(name=‘seven‘).order_by(‘-id‘) # desc # limit 、offset # # models.Tb1.objects.all()[10:20] # group by from django.db.models import Count, Min, Max, Sum # models.Tb1.objects.filter(c1=1).values(‘id‘).annotate(c=Count(‘num‘)) # SELECT "app01_tb1"."id", COUNT("app01_tb1"."num") AS "c" FROM "app01_tb1" WHERE "app01_tb1"."c1" = 1 GROUP BY "app01_tb1"."id"
-
连表操作
-
class Clothes(models.Model): color=models.ForeignKey("Colors") #与颜色表为外键,颜色表为母表 description=models.CharField(max_length=10) #描述 def __str__(self): return self.description class Colors(models.Model): colors=models.CharField(max_length=10) #蓝色 def __str__(self): return self.colors
#颜色为红的服装,description都更新为大美女 #写法1: models.Clothes.objects.filter(color__colors="红").update(description="大美女") #写法2: models.Clothes.objects.filter(color_id=models.Colors.objects.get(colors="红").id).update(description="大美女") #写法3: colors_obj=models.Colors.objects.get(colors="红") colors_obj.clothes_set.filter(id__gte=1).update(description="大美女")
#增添子表数据,形式与一对一一致 #添加颜色为绿的服装:小帅哥 #方法1: models.Clothes.objects.create(color=models.Colors.objects.get(colors="绿"),description="小帅哥") #方法1补充: models.Clothes.objects.create(color_id=models.Colors.objects.get(colors="绿").id,description="小帅哥") #方法2: c_obj=models.Clothes(color=models.Colors.objects.get(colors="绿"),description="小帅哥") c_obj.save()
以上是关于Python 20th Day的主要内容,如果未能解决你的问题,请参考以下文章
oldboy 23th day . I love Python. 模块之初始, 以及 序列化模块