zoukankan      html  css  js  c++  java
  • Django数据库操作

    刚学到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')


  • 相关阅读:
    【crontab】误删crontab及其恢复
    New Concept English there (7)
    New Concept English there (6)
    New Concept English there (5)
    New Concept English there (4)
    New Concept English there (3)
    New Concept English there (2)Typing speed exercise
    New Concept English there (1)Typing speed exercise
    New Concept English Two 34 game over
    New Concept English Two 33 94
  • 原文地址:https://www.cnblogs.com/MacoLee/p/5603898.html
Copyright © 2011-2022 走看看