• 二、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')
    
  • 相关阅读:
    Codeforces Round #388 (Div. 2)
    Codeforces Round #388 (Div. 2)
    Codeforces Round #388 (Div. 2)
    FZU 1914 单调队列
    ACM学习历程—POJ 3764 The xor-longest Path(xor && 字典树 && 贪心)
    ACM学习历程—SGU 275 To xor or not to xor(xor高斯消元)
    ACM学习历程—CSU 1216 异或最大值(xor && 贪心 && 字典树)
    ACM学习历程—HDU 5512 Pagodas(数学)
    ACM学习历程—HDU5521 Meeting(图论)
    ACM学习历程—HDU1030 Delta-wave(数学)
  • 原文地址:https://www.cnblogs.com/antmoe/p/12231415.html
Copyright © 2020-2023  润新知