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测试,地址要严格,斜杠有和没有是有区别的

 

posted @ 2022-03-29 16:38  那就凑个整吧  阅读(311)  评论(0编辑  收藏  举报