【python】web应用开发DRF框架

DRF

【python】web应用开发DRF框架

Django rest_framework, 简称 drf, 可以更方便的使用django写出符合 RESTful 规范的接口, (缩减编写api接口的代码)

Django REST framework是一个建立在Django基础之上的Web应用开发框架(Django的一个app),可以快速的开发REST API接口应用
在REST framework中,提供了序列化器Serialzier的定义,可以帮助我们简化序列化与反序列化的过程
不仅如此,还提供丰富的类视图、扩展类、视图集来简化视图的编写工作
REST framework还提供了认证、权限、限流、过滤、分页、接口文档等功能支持
REST framework提供了一个API 的Web可视化界面来方便查看测试接口

2.安装与快速使用(csrf禁用状态)

  • 安装 drf
pip3 install djangorestframework
  • models.py 文件书写模型类(需要持久化的)
from django.db import models


class Book(models.Model):
    nid = models.AutoField(primary_key=True)
    title = models.CharField(max_length=32)
    price = models.DecimalField(max_digits=8,decimal_places=2)
    author = models.CharField(max_length=16)
    publish = models.CharField(max_length=16)
# 创建好模型类执行数据库迁移命令
  • serializers.py 新建一个序列化类(该文件自己创建),如果如果是继承了ModelSerializer(序列化不等于一定要存数据库)
from rest_framework.serializers import ModelSerializer
from drf_test import models


class BookSerializers(ModelSerializer):
    class Meta:
        model = models.Book  #  指明该序列化器处理的数据字段从模型类Book参考生成
        fields = "__all__"   # 指明该序列化器包含模型类中的哪些字段,’all‘指明包含所有字段

果类继承的是Serializer,也就是继承了基类,那么这个我们要写的类的写法就是和model里面差不多,,格式如下:

序列化的使用

在view里面写逻辑的时候,比如我们将查询出来的数据,要返回给前段,那么就需要序列化查询出来的数据,那么就需要使用序列化器,使用方法如下:

如果前端传过来数据,我要进行反序列化咋办,将instace 这个属性变为data属性就行,就是属性不一样,其他的都一样。

具体源码就是:

将查询出来的数据返回给前段,有可能查询出多条数据,咋返回了:

 book_data = serializers.BookModelSerializers(book_obj).data  #单条数据序列化 

book_data = serializers.BookModelSerializers(book_query,many=True).data  
#不管是一条还是多条,只要数据是被[]嵌套,都要写many=True

  • views.py 书写视图类
 
 

参考:DRF框架(四)——序列化器和反序列化器-腾讯云开发者社区-腾讯云

2、DRF框架入门介绍_给你骨质唱疏松的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/qq_35789269/article/details/131407133
今日推荐