• APIView视图的添加与查看


    Django -   APIView视图的添加与查看


    一、在models.py文件中添加数据模型

    1. class Book(models.Model):
    2.     title = models.CharField(max_length=32,verbose_name="书籍名称")
    3.     price = models.IntegerField(verbose_name="价格")
    4.     pub_date = models.DateField(verbose_name="出版日期")
    5.     
    6.     bread = models.IntegerField(verbose_name="阅读量"
    7.     bcomment = models.IntegerField(verbose_name="评论量"
    8.     
    9.     publish = models.ForeignKey("Publish",on_delete=models.CASCADE,verbose_name="出版社")
    10.     # authors = models.ManyToManyField("Author",verbose_name="作者")
    11.     def __str__(self):
    12.         return self.title
    13. class Publish(models.Model):
    14.     name = models.CharField(max_length=32,verbose_name="出版社名称")
    15.     email = models.EmailField(verbose_name="出版社邮箱")
    16.     def __str__(self):
    17.         return self.name
    18. class Author(models.Model):
    19.     name = models.CharField(max_length=32,verbose_name="作者")
    20.     age = models.IntegerField(verbose_name="年龄")
    21.     def __str__(self):
    22.         return self.name


    二、使用命令创建表

    1. python manage.py makemigrations
    2. python manage.py migrate

    三、在serializers.py创建作者表的序列化器类

    1. class AuthorSerializer(serializers.Serializer):
    2.     name = serializers.CharField(max_length=32)
    3.     age = serializers.IntegerField()
    4.     def create(self,validated_data):
    5.         author_obj = Author.objects.create(**validated_data)
    6.         return author_obj

    四、构建 作者表的 增删改查 views.py

    1. class AuthorView(APIView):
    2.     def get(self, request):
    3.         authors = Author.objects.all()  #获取所有数据
    4.         serializer = AuthorSerializer(instance=authors, many=True)   #构建序列化器
    5.         return Response(serializer.data)
    6.     def post(self, request):
    7.         serizlizer = AuthorSerializer(data=request.data)    #反序列化器
    8.         #数据校验
    9.         #验证通过   serializer.data
    10.         #验证不通过  serializer.errors
    11.         if serizlizer.is_valid():
    12.             # Author.objects.create(**serializer.validated_data)   这种原始传入数据的方法
    13.             # return Respons("OK")
    14.             serizlizer.save()
    15.             return Response(serizlizer.data)
    16.         else:
    17.             return Response(serizlizer.errors)


    五、构建路由

    path("authors/",AuthorView.as_view)

  • 相关阅读:
    Go语言内存管理:从理论到实战
    海藻酸-磷脂微囊复合水凝胶/具有细胞膜仿生温敏性水凝胶的相关内容
    国鸿氢能冲刺港股:年亏损7亿 云浮工业园与青岛城投是股东
    【k8s】4、资源管理命令-陈述式
    30岁以上的程序员该何去何从?
    GDB调试之strip
    分布式协调系统ZooKeeper实践与原理剖析
    Git基本使用
    HTML练习元宵节案例
    爬虫过程和反爬
  • 原文地址:https://blog.csdn.net/vivigege/article/details/134268856