Django之REST framework环境搭建

59 篇文章 2 订阅 ¥19.90 ¥99.00
本文介绍了如何在Django环境中搭建REST framework,包括安装、settings配置,以及序列化和反序列化的步骤,如建立模型、迁移模型和创建序列化类。
摘要由CSDN通过智能技术生成

image-20221122180514525

一、环境搭建

Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API

官网:Home - Django REST framework

中文文档:主页 - Django REST framework中文站点

1.1、安装

Python3.8+

pip install django==4.1.1
pip install djangorestframework==3.14.0

1.2、settings配置

首先新建一个django项目

然后如果要启用REST framework,那么需要将其添加到

INSTALLED_APPS 中

INSTALLED_APPS = [
  ...
  'rest_framework'
]

二、序列化与反序列化

image-20221122180544276

当前WEB API应用中,前端要用到从后台返回的数据来渲染页面的时候,一般都是使用的json类型的数据,因为json类型简单直观便于理解,那么就需要在django框架中,将模型类数据序列化为json

image-20221122204845282

2.1、建立模型

class Student(models.Model):
  SEX_CHOICES = ((1,'男'), (2, '女'))
  name = models.CharField(max_length=20,verbose_name='姓名')
  age = models.IntegerField(null=True,blank=True, verbose_name='年龄')
  sex = models.IntegerField(choices=SEX_CHOICES, default=1, verbose_name='性别')
  class Meta:
    db_table='t_student'

2.2、迁移模型

在迁移之前,需要正确配置settings当中的数据库信息

数据库配置

DATABASES = {
  'default': {
    'ENGINE':'django.db.backends.mysql',
    'NAME': 'django_rest',
    'HOST': '127.0.0.1',
    'PORT': 3306,
    'USER': 'root',
    'PASSWORD': '123',
  }
}

迁移模型

python manage.py makemigrations
python manage.py migrate

2.3、创建序列化类

在子应用的目录下,新建app_serializers.py 文件,在其中建立一个对应第一步建立的模型的序列化类:

from rest_framework import serializers
from rest_app.models import *
class StudentSerializer(serializers.ModelSerializer):
  class Meta:
    model = Student
    fields = ['id', 'name', 'age','sex']

说明:

  • 继承自serializers.ModelSerializer类

  • 必须实现class Meta

    • model 的值为对应的模型类
    • fields 的值是要序列化的字段,设置为 fields ='__all__'则使用所有模型的字段,也可以使用 exclude 指明要排除的字段,例如:exclude = ['id'] , 通常使用 fields
  • 继承自ModelSerializer类,其实是一种快捷的方式,也可以直接继承serializers.Serializer,手动写字段集以及 create、update方法。ModelSerializer有一个 repr 属性来查看字段集是如何编写的

  • 打开django脚本控制台,测试执行模型的方法

    python manage.py shell
    
  • 测试

    from rest_app.app_serializers import StudentSerializer
    stu_serializer = StudentSerializer()
    print(repr(stu_serializer))
    

    测试数据

    insert into t_student (name,age,sex) values ('Python',18,1);
    insert into t_student (name,age,sex) values ('Django',20,1);
    insert into t_student (name,age,sex) values ('测试',22,2);
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟之编程

您的支持将成为我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值