问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Django DRF开发入门:从环境搭建到序列化实战

创作时间:
作者:
@小白创作中心

Django DRF开发入门:从环境搭建到序列化实战

引用
CSDN
1.
https://blog.csdn.net/Lescar/article/details/139746591

本文是一篇关于Django REST Framework(DRF)的入门教程,详细介绍了DRF的基本概念、环境搭建步骤以及一个简单的序列化示例。通过本文,读者可以快速掌握DRF的基础使用方法,并能够搭建一个基本的RESTful API。

一、DRF介绍

DRF即Django REST Framework的缩写,是Django框架中实现Restful API的一个插件,使用他可以非常方便的实现接口数据的返回。简单来说:通过DRF创建API后,就可以通过HTTP请求来获取、创建、更新或者删除数据(CRUD)

使用DRF原因:

  1. 可以自动生成API文档,在前后端分离开发的时候进行沟通比较有用。
  2. 授权验证策略比较完整,包含OAuth1和OAuth2验证。
  3. 支持ORM模型和非ORM数据的序列化。
  4. 高度封装了视图,使得返回json数据更加的高效。

二、环境搭建

1、在编译器终端,创建项目虚拟环境drflearn并激活该环境:

python -m venv drflearn # 创建虚拟环境drflearn
.\drflearn\Scripts\activate # 激活虚拟环境,注意:当前为window端虚拟环境激活方式

2、通过命令安装DRF环境

pip install djangorestframework

3、使用命令创建Django项目drf_project,项目目录如下

django-admin startproject drf_project

4、在settings中挂载rest_framework

INSTALLED_APPS = [
    "...",
    "rest_framework",
]

三、简单体验DRF序列化

1、创建应用serializer_learn

cd .\drf_project\
python manage.py startapp serializer_learn

生成目录如下:

在settings中挂载该应用

INSTALLED_APPS = [
    "...",
    "rest_framework",
    "serializer_learn",
]

2、在models.py中创建简单模型

from django.db import models

# Create your models here.
class Goods(models.Model):
    name = models.CharField(max_length=200,verbose_name='商品名称')
    picture = models.CharField(max_length=200,verbose_name='商品图片')
    price = models.DecimalField(verbose_name='商品价格',max_digits=6,decimal_places=2)

    class Meta:
        db_table = 'goods'
        verbose_name = '商品管理'
        verbose_name_plural = '商品管理'

    def __str__(self):
        return self.name

在admin.py中注册该模型

from django.contrib import admin
from .models import Goods

# Register your models here.
admin.site.register(Goods)

执行数据库迁移

python manage.py makemigrations
python manage.py migrate

3、在应用目录下创建serializers.py文件

from rest_framework import serializers
from .models import Goods

class GoodsSerializer(serializers.ModelSerializer):
    class Meta:
        model = Goods
        fields = "__all__"

修改views.py

from rest_framework import viewsets
from .models import Goods
from .serializers import GoodsSerializer

# 这个视图函数已经包含了增删改检索
class GoodsView(viewsets.ModelViewSet):
    queryset = Goods.objects.all()
    serializer_class = GoodsSerializer

在应用目录下,新建urls.py 配置路由

from rest_framework.routers import DefaultRouter
from .views import GoodsView

router = DefaultRouter()
router.register('good',GoodsView)

urlpatterns = [
    
]+router.urls

在根目录下配置上述路由

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("serializer",include('serializer_learn.urls'))
]

4、为Goods模型添加数据

执行命令生成超级用户

python manage.py createsuperuser

执行命令运行django程序

python manage.py runserver

访问http://127.0.0.1:8000/admin/ 登录超级用户

访问127.0.0.1:8000/serializergood/可查看序列化后的数据,会将模型序列化成JSON格式的对象,使用Postman可实现对数据的增删改查

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号