Django - APIView视图的添加与查看
一、在models.py文件中添加数据模型
- class Book(models.Model):
- title = models.CharField(max_length=32,verbose_name="书籍名称")
- price = models.IntegerField(verbose_name="价格")
- pub_date = models.DateField(verbose_name="出版日期")
-
- bread = models.IntegerField(verbose_name="阅读量")
- bcomment = models.IntegerField(verbose_name="评论量")
-
- publish = models.ForeignKey("Publish",on_delete=models.CASCADE,verbose_name="出版社")
- # authors = models.ManyToManyField("Author",verbose_name="作者")
-
- def __str__(self):
- return self.title
-
-
- class Publish(models.Model):
- name = models.CharField(max_length=32,verbose_name="出版社名称")
- email = models.EmailField(verbose_name="出版社邮箱")
-
- def __str__(self):
- return self.name
-
-
- class Author(models.Model):
- name = models.CharField(max_length=32,verbose_name="作者")
- age = models.IntegerField(verbose_name="年龄")
-
- def __str__(self):
- return self.name
二、使用命令创建表
- python manage.py makemigrations
- python manage.py migrate
三、在serializers.py创建作者表的序列化器类
- class AuthorSerializer(serializers.Serializer):
- name = serializers.CharField(max_length=32)
- age = serializers.IntegerField()
-
- def create(self,validated_data):
- author_obj = Author.objects.create(**validated_data)
- return author_obj
四、构建 作者表的 增删改查 views.py
- class AuthorView(APIView):
- def get(self, request):
- authors = Author.objects.all() #获取所有数据
- serializer = AuthorSerializer(instance=authors, many=True) #构建序列化器
- return Response(serializer.data)
-
- def post(self, request):
- serizlizer = AuthorSerializer(data=request.data) #反序列化器
- #数据校验
- #验证通过 serializer.data
- #验证不通过 serializer.errors
- if serizlizer.is_valid():
- # Author.objects.create(**serializer.validated_data) 这种原始传入数据的方法
- # return Respons("OK")
- serizlizer.save()
- return Response(serizlizer.data)
- else:
- return Response(serizlizer.errors)
五、构建路由
path("authors/",AuthorView.as_view)