DRF介绍以及简单使用
DRF介绍
全称Django REST framework
核心思想:缩减编写api接口的代码
Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用。在REST framework中,提供了序列化器Serialzier的定义,可以帮助我们简化序列化与反序列化的过程,不仅如此,还提供丰富的类视图、扩展类、视图集来简化视图的编写工作。REST framework还提供了认证、权限、限流、过滤、分页、接口文档等功能支持。REST framework提供了一个API 的Web可视化界面来方便查看测试接口。
DRF是以Django扩展应用的方式提供的,所以我们可以直接利用已有的Django环境而无需从新创建。(若没有Django环境,需要先创建环境安装Django)
官方文档
https://www.django-rest-framework.org/
安装
前提是已经安装了django,建议安装在虚拟环境
pip install djangorestframework
版本
REST framework requires the following:
Python (3.6, 3.7, 3.8, 3.9, 3.10)
Django (2.2, 3.0, 3.1, 3.2, 4.0)
注:当你pip3 install的时候,由于低于2.2不支持最新的drf,所以会把你老版本的django卸载,自动给你装上最新版,会导致原来写的django项目可能有问题,运行不了。
简单使用
models.py
from django.db import models # Create your models here. class Book(models.Model): name = models.CharField(max_length=32) price = models.DecimalField(decimal_places=2, max_digits=5) author = models.CharField(max_length=32)
views.py
from rest_framework.viewsets import ModelViewSet from .models import Book from .serializer import BookSerializer class BookView(ModelViewSet): queryset = Book.objects.all() serializer_class = BookSerializer
urls.py
from django.contrib import admin from django.urls import path from rest_framework.routers import SimpleRouter from app01 import views router = SimpleRouter() router.register('books', views.BookView, 'books') urlpatterns = [ path('admin/', admin.site.urls), ] urlpatterns += router.urls
serializer.py(序列化类)
from .models import Book from rest_framework import serializers class BookSerializer(serializers.ModelSerializer): class Meta: model = Book fields = '__all__'
pycharm链接sqlite数据库
五个接口
-查询所有---》get->http://127.0.0.1:8000/books/
-查询一个---》get->http://127.0.0.1:8000/books/1/
-新增一个---》post->http://127.0.0.1:8000/books/ body中带数
-修改-----》put,patch--->实际编码中,基本都用put http://127.0.0.1:8000/books/1/ body体中传入修改的数据
-删除一个---》delete-->http://127.0.0.1:8000/books/1/ # 登陆接口---》本质其实是查询一个 # 注册接口----》本质是新增一个 # postman测试,地址要严格,斜杠有和没有是有区别的