码迷,mamicode.com
首页 > 数据库 > 详细

django的数据库操作回顾

时间:2018-04-24 11:18:02      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:max   count   int   字段   cts   没有   ...   构造   指定字段   

1、数据库操作
- 单表操作
- all
- filter
models.tb.objects.filter(id=123)

dic = {‘id‘: 123, ‘age__gt‘: 3}
models.tb.objects.filter(**dic)
- count
- order_by
...
- 一对多
# id name
1 河北
2 广东
3 山东
class Province(models.Model):
name = models.CharField(max_length=32,)
# nid = models.Intergar(unique=True) # 唯一

# id name pro
1 东莞 2
2 深圳 2
3 惠州 2
4 河源 2
5 泰安 3
6 青岛 3
7 济南 3
8 张家口 1
9 邢台 1
class City(models.Model):
name = models.CharField(max_length=32)
pro = models.ForeignKey("Province", to_filed=‘id‘)
默认是关联Province的id,我们这样就可以关联Province表的指定字段,如果关联某个表得指定字段,那么这个表的指定字段必须要设置为唯一unique=True)




1、 正向查找,通过有foreignkey的表查找
result = models.City.objects.all() 对象
result[0].pro.name

models.City.objects.all().values(‘id‘,‘name‘,‘pro_id‘,‘pro__id‘,‘pro__name‘) 字典
models.City.objects.all().values_list(‘id‘,‘name‘,‘pro_id‘,‘pro__id‘,‘pro__name‘) 列表

2、反向查找,通过没有foreignkey的表查找

result = models.a3 = pro.city_set.all().objects.values(‘id‘,‘name‘, ‘city__name‘)

result = models.Province.objects.all()
result[0] # 获取河北
result[0].city_set.all() # 获取河北下的所有市 张家口 、邢台

for pro in result:
a1 = pro.id
a2 = pro.name
a3 = pro.city_set.all()
这里获取的某个省的所有的市

a3 = pro.city_set.filter(id_lt)
city_set后可以使用filter,all等方法


print(a1,a2,a3)
=====> 多对多即使基于一对多来构造

django的数据库操作回顾

标签:max   count   int   字段   cts   没有   ...   构造   指定字段   

原文地址:https://www.cnblogs.com/bainianminguo/p/8925747.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!