Django增删改查

1、先建表
  ->mydata/models.py的内容如下:
  from __future__ import unicode_literals
  from django.db import models
  class user(models.Model):
      username = models.CharField(max_length=16)
      pwd = models.CharField(max_length=32)

      def __unicode__(self):
          return self.username

python manage.py makemigrations app名(不写项目下所有APP都生成数据表);
python manage.py migrate
python manage.py sqlmigrate 应用名 文件id 查看SQL语句

2、QuerySet 创建对象的方法(增)
方法 1:(返回对应的 object)
models.user.objects.create(username="小红", pwd="123123")
方法 2:(返回对应的 object)
twz = models.user(username="小红", pwd="123123")
twz.save()
方法 3:(返回对应的 object)
twz = models.user()
twz.username = "小红"
twz.pwd = "123123"
twz.save()
方法 4:
首先尝试获取,不存在就创建,可以防止重复(最后一种方法返回的是一个元组,(object, True/False),创建时返回 True, 已经存在时返回 False)
models.user.objects.get_or_create(username="小红", pwd="123123")

3、删除符合条件的结果(删)
models.user.objects.all().delete() # 删除所有记录
方法一:
models.user.objects.filter(username__contains="abc").delete() # 删除 名称中包含 "abc"的人
方法二:
twz = models.user.objects.filter(username__contains="abc")
twz.delete()

4、更新某个内容(改)
方式一:
批量更新,适用于 .all()  .filter()  .exclude() 等后面 (危险操作,正式场合操作务必谨慎)
models.user.objects.filter(name__contains="abc").update(name='xxx') 名称中包含 "abc"的人 都改成 xxx
方式二:
单个 object 更新,适合于 .get(), get_or_create(), update_or_create() 等得到的 obj,和新建很类似
twz = models.user.objects.get(username="qwer")
twz.name="abc"
twz.email="123123"
twz.save()

5、QuerySet 获取对象的方法(查)
models.user.objects.all()                                             # 查询所有
models.user.objects.get(username="abc")                               # 名称为 abc 的一条,多条会报错
models.user.objects.filter(username="abc")                            # 名称严格等于 "abc" 的人
models.user.objects.filter(username__iexact="abc")                    # 名称为 abc 但是不区分大小写,可以找到 ABC, Abc, aBC,这些都符合条件
models.user.objects.filter(username__contains="abc").exclude(age=23)  # 找出名称含有abc, 但是排除年龄是23岁的
models.user.objects.exclude(username__contains="abc")                 # 排除包含 abc 的对象

猜你喜欢

转载自blog.csdn.net/qq_33867131/article/details/80764234