刚学到Django的数据库操作,把它记录下来,方便以后查看:
在Django中定义数据库表,并使用Django提供的方法来对数据库进行操作(增、删、改、查)
1、定义3个数据库表:
1 class Group(models.Model):
2 name = models.CharField(max_length=50,default=None)
3
4 class User(models.Model):
5 name = models.CharField(max_length=50,default=None)
6 Email = models.CharField(max_length=50,default=None)
7
8 group_relation = models.ManyToManyField('Group',default=None) #生成多对多表
9
10 class Asset(models.Model):
11 hostname = models.CharField(max_length=50,default=None)
12 create_date = models.DateTimeField(auto_now_add=True)
13 update_date = models.DateTimeField(auto_now=True)
2、向数据库中添加内容
1 Asset.objects.create(hostname=name)
2
3 #多对多添加数据
4 u1 = User.objects.filter(id=1)
5 g1 = Group.objects.filter(id=1)
6 u1.group_relation.add(g1)
7 g1.user_set.add(u1)
3、从数据库中删除内容
1 Asset.objects.get(id=id).delete()
2
3 # 多对多删除数据
4 u1 = User.objects.filter(id=1)
5 g1 = Group.objects.filter(id=1)
6 u1.group_relation.delete(g1)
7 g1.user_set.delete(u1)
4、修改数据库中的内容
1 #根据id修改hostname
2 obj = Asset.objects.get(id=id)
3 obj.hostname=hostname
4 obj.save()
5
6 #所有id大于传入参数的,就将hostname修改
7 Asset.objects.filter(id__gt=id).update(hostname=hostname)
5、查询数据库中的内容
1 # 多对多获取数据
2 u1 = User.objects.filter(id=1)
3 g1 = Group.objects.filter(id=1)
4 u1.group_relation.all()
5 u1.group_relation.all().filter(id=1)
6 g1.user_set.all()
7 g1.user_set.all().filter(email='')
8
9 #查找所有id大于传入参数的数据
10 Asset.objects.filter(id__gt=id)
11 #查找所有hostname包含传入参数的数据
12 Asset.objects.filter(hostname__contains=hostname)
13 #查找类型id等于5的所有用户信息---type__id:type表示UserInfo表中的type字段(对应type表的外键),__id表示与userinfo表相关联的type表的id
14 UserIfo.objects.filter(type__id = 5)
15 #取出所有数据
16 Asset.objects.all()
17 #取出所有数据的前两条数据
18 Asset.objects.all()[0:2]
19 # 取出所有数据,并进行排序---id:按id正序排列,倒序就用'-id'
20 Asset.objects.all().order_by('id')
21 # 取出所有数据中的id和hostname列数据
22 Asset.objects.all().values('id','hostname')