ORM对数据库的增删改查

向表中增加数据:

class AddStudent(View):
    def post(self,request):
        name = request.POST.get('name')
        height = request.POST.get('height')
        face = request.POST.get('face')
        teacher = request.POST.get('teacher')
        try:
            Student.objects.create(
                stu_name=name,
                height=height,
                face=face,
                teacher_id=teacher
            )
        except Exception as e:
            print(e)
            return HttpResponse("添加失败")
        return redirect('/tall/')

删除数据:

class Delete(View):
    # 根据学生id删除学生信息:
    def get(self,request,id):
        #方案1:重定向老师页面
        # Student.objects.filter(id=id).delete()
        # return redirect('/tall/') #重定到老师页面

#         方案2:重定向学生页面
        stu = Student.objects.get(id=id)
        tea_id = stu.teacher_id  #获取老师id
        stu.delete() #删除数据
        return redirect(f'/stu/{tea_id}/')

修改数据:

class Update(View):
    # 展示要更新的学生信息:
    def get(self,request,id):
        data = Student.objects.get(id=id)
        return render(request,'index.html',{'i':data})

#     根据id修改学生信息:
    def post(self,request,id):
        name = request.POST.get('name')
        height = request.POST.get('height')
        face = request.POST.get('face')
        teacher = request.POST.get('teacher')

        try:
            Student.objects.filter(id=id).update(
                stu_name=name,
                height=height,
                face=face,
                teacher_id=teacher
            )
        except Exception as e:
            print(e)
            return HttpResponse("修改失败")
        return redirect('/tall/')

查找数据:

class Select(View):
    def get(self,request):
        name = request.GET.get('name')
        try:
            data = Student.objects.get(stu_name__contains=name)
        except Exception as e:
            print(e)
            return HttpResponse("数据不存在")
        return HttpResponse(f'查找到的数据为{data.stu_name},{data.height},{data.face},{data.teacher}')

​ book = models.ForeignKey(BookInfo, on_delete=models.CASCADE, verbose_name=‘图书’) # 外键

# 跳转数据
class StudentView(View):
    # 根据老师id展示对应的学生的信息
    def get(self,request,id):
        data = Student.objects.filter(teacher_id=id)
        return render(request,'student.html',{'i':data})
    path('tall/',views.Tall.as_view()),
    # 动态路由,参数id为老师id,根据老师id展示对应的学生
    path('stu/<int:id>/',views.StudentView.as_view()),
#     动态路由:参数id为学生id,根据学生id删除对应的学生
    path('del/<int:id>/',views.Delete.as_view()),
#     静态路由:添加学生信息:
    path('add/',views.AddStudent.as_view()),
#     动态路由,根据学生id动态更新学生信息:
    path('update/<int:id>/',views.Update.as_view()),

    # 静态路由,根据学生姓名,搜索学生信息:
    path('select/',views.Select.as_view())
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值