zoukankan      html  css  js  c++  java
  • django原生View(增删改查)


    django 原生View


    Model 图书管理案例

    
    class BookModel(models.Model):
        title = models.CharField(max_length=32,verbose_name='书名')
        pub_date = models.DateField(verbose_name='发布日期')
        desc = models.CharField(max_length=320,verbose_name='简介')
        read = models.IntegerField(default=0,verbose_name='阅读量')
        is_delete = models.BooleanField(default=False,verbose_name='逻辑删除')
    
    

    View 实现添加动能

    class BookView(View):
    
        def post(self,request):
            data = json.loads(request.body.decode())
            title = data.get('title')
            pub_date = data.get('pub_date')
            desc = data.get('desc')
            book = BookModel.objects.create(title=title,pub_date=pub_date,desc=desc)
            book_dict = {
                'id':book.id,
                'title':book.title,
                'pub_date':book.pub_date,
                'read':book.read,
                'desc':book.desc,
            }
            return JsonResponse(book_dict,status=201)
    
    

    View 实现查看动能

    class BookView(View):
    
            def get(self,request,pk=None):
            # 查看单条数据
            if pk:
                try:
                    book = BookModel.objects.get(pk=pk)
                    book_dict = {
                        'id': book.id,
                        'title': book.title,
                        'pub_date': book.pub_date,
                        'desc': book.desc,
                        'read': book.read,
                    }
                    return JsonResponse(book_dict)
                except Exception as e:
                    return JsonResponse({'code':400,'msg':'pk不存在'})
            # 查看多条数据
            else:
                books = BookModel.objects.all()
                book_list = []
                for book in books:
                    book_dict = {
                        'id':book.id,
                        'title':book.title,
                        'pub_date':book.pub_date,
                        'desc':book.desc,
                        'read':book.read,
                    }
                    book_list.append(book_dict)
                return JsonResponse(book_list,safe=False)
    
    

    View 实现修改动能

    
    class BookView(View):
        def put(self,request,pk=None):
            try:
                book = BookModel.objects.get(pk=pk)
                data = json.loads(request.body.decode())
                title = data.get('title')
                pub_date = data.get('pub_date')
                book.title=title
                book.pub_date=pub_date
                book.save()
                book_dict = {
                    'id': book.id,
                    'title': book.title,
                    'pub_date': book.pub_date,
                    'desc': book.desc,
                    'read': book.read,
                }
                return JsonResponse(book_dict)
            except Exception as e:
                return JsonResponse({'code':400,'msg':'pk不存在'})
    
    

    View 实现删除动能

    
    class BookView(View):
        def delete(self,request,pk=None):
            try:
                book = BookModel.objects.get(pk=pk)
                book.is_delete=True
                book.save_base()
                return HttpResponse('ok')
            except Exception as e:
                return JsonResponse({'code':400,'msg':'pk不存在'})
    
    
  • 相关阅读:
    hdu 3018
    poj 1833 排列
    poj 1256 Anagram
    CF 548B Mike and Fun
    CF 548A
    【冰茶几专题】F
    【冰茶几专题】C
    535 C.Tavas and karafs
    [WA]cf 534 D. Handshakes
    cf 534C. Polycarpus' Dice
  • 原文地址:https://www.cnblogs.com/GlfLss/p/14171943.html
Copyright © 2011-2022 走看看