欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

DRF 工程 搭建

程序员文章站 2022-03-05 16:54:12
...

环境安装与配置

DRF 是以 Django 扩展应用的方式提供的,所以我们可以直接利用已有的 Django 环境而无需重新创建。(若没有 Django 环境,需要先创建环境安装 Django)

安装DRF

pip install djangorestframework

添加rest_framework应用

我们利用在Django框架学习中创建的demo工程,在settings.pyINSTALLED_APPS中添加’rest_framework’。

INSTALLED_APPS = [
    ...
    'rest_framework',
]

接下来就可以使用DRF进行开发了。


见识 DRF 的魅力

创建序列化器

创建一个BookInfoSerializer用于序列化与反序列化。

class BookInfoSerializer(serializers.ModelSerializer):
    """图书数据序列化器"""
    class Meta:
        model = BookInfo
        fields = '__all__'

  • meta 指明该序列化器处理的数据字段从模型类 BookInfo 参考生成
  • fields 指明该序列化器包含模型类中的哪些字段,__all__ 指明包含所有字段

编写视图

from rest_framework.viewsets import ModelViewSet
from .serializers import BookInfoSerializer
from .models import BookInfo

class BookInfoViewSet(ModelViewSet):
    queryset = BookInfo.objects.all()
    serializer_class = BookInfoSerializer
  • queryset 指明该视图集在查询数据时使用的查询集
  • serializer_class 指明该视图在进行序列化或反序列时使用的序列化器

定义路由

在booktest应用的urls.py中定义路由信息。

from . import views
from rest_framework.routers import DefaultRouter

urlpatterns = [
    ...
]

router = DefaultRouter()  # 可以处理视图的路由器
router.register(r'books', views.BookInfoViewSet)  # 向路由器中注册视图集

urlpatterns += router.urls  # 将路由器中的所以路由信息追到到django的路由列表中

除了在 urlpatterns 中添加路由,也可以使用 DefaultRouter 创建路由器,将视图注册进去

运行测试

运行当前程序(与运行 Django 一样)

python manage.py runserver

在浏览器中输入网址 127.0.0.1:8000,可以看到 DRF 提供的 API web 浏览界面,可以访问接口,可以发送不同的请求进行增删改查。

相关标签: DRF