二、Django学习之增删改查

增加数据

第一种方式

def index(request):
    #创建记录方式1
    #实例化要添加的记录(对象)
    student_obj = models.Student(
        name='dazhuang',
        age=23,
    )
    #自动刷新并存储到数据库
    student_obj.save()
    return render(request,'index.html')

第二种方式 常用方法

def index(request):
    #创建记录方式2
    # new_obj为返回值,返回这个类的对象 (model对象)
    new_obj = models.Student.objects.create(name='xiaozhuang',age=5)
    print(new_obj.name)
    print(new_obj.age)
    return render(request,'index.html')

第三种方式 批量创建

def index(request):
    #创建方式3 批量创建
    objs = []
    for i in range(20):
        obj = models.Student(
            name='xiangxi%s'%i,
            age = 10+i,
        )
        objs.append(obj)
    models.Student.objects.bulk_create(objs)

第四种方式 update_or_create

有就更新,没有就创建

models.Student.objects.update_or_create(
        name='xiangxi0',
        defaults={
            'age':48,
        }
    )

删除数据

通过model对象或queryset对象调用delete方法

def delete(request):
    # models.Student.objects.get(id=2).delete()
    models.Student.objects.filter(name='xiaozhuang').delete()
    return render(request,'index.html')

简单查询数据

获取全部数据

利用all()方法

def select(request):
    # 查询所有记录  如果不是一条数据,则返回一个结果集   类似于列表
    all_objs = models.Student.objects.all()
    print(all_objs)
    for i in all_objs:
        print(i.name)
    return render(request,'index.html')

条件查询 filter

查询条件作为参数传入即可。

查到返回结果,否则反回空列表(QuerySet对象)

def select(request):
    #条件查询  查询id等于3的数据
    objs = models.Student.objects.filter(id=3)
    print(objs)
    return render(request,'index.html')

条件查询 get

与filter类似,但返回的是model对象。get方法有且必须只有一条记录

更新数据

修改数据只能是queryset对象,不能是model对象

def update(request):
    models.Student.objects.filter(id=1).update(age=38)
    return render(request,'index.html')

你可能感兴趣的:(二、Django学习之增删改查)