Django REST框架简单使用

建立一个新的环境

在我们做任何其他事情之前,我们将使用virtualenv创建一个新的虚拟环境这将确保我们的包配置与我们正在处理的任何其他项目保持良好隔离。

virtualenv env
source env/bin/activate

现在我们已经进入了virtualenv环境,我们可以安装我们的包需求。

pip install django==1.11
pip install djangorestframework

建立一个新的项目

创建一个可以使用的新项目

django-admin startproject demoDRF
cd demoDRF

完成后,我们可以创建一个应用程序,我们将用它来创建一个简单的Web API。

python manage.py startapp demo

我们需要添加我们的新demo应用和rest_framework用用INSTALLED_APPS。让我们编辑demoDRF/settings.py文件:

INSTALLED_APPS = (
    ...
    'rest_framework',
    'demo',
)

创建要使用的模型

首先创建一个demo用于存储代码片段的简单模型。继续编辑demo/models.py文件

 1 from django.db import models
 2 
 3 
 4 # Create your models here.
 5 class Select(models.Model):
 6     title = models.TextField()
 7     a = models.CharField(max_length=255)
 8     b = models.CharField(max_length=255)
 9     c = models.CharField(max_length=255, blank=True, null=True)
10     d = models.CharField(max_length=255, blank=True, null=True)
11     select_answer = models.CharField(max_length=4)
12     type = models.IntegerField()
13 
14     class Meta:
15         db_table = 'select'

我们还需要为我们的代码段模型创建初始迁移,并首次同步数据库。

python manage.py makemigrations demo
python manage.py migrate

创建一个Serializer类

我们需要开始使用Web API的第一件事是提供一种将代码段实例序列化和反序列化为表示形式的方法json我们可以通过声明与Django表单非常相似的序列化器来完成此操作。名为demo目录中创建一个文件,serializers.py然后添加以下内容。

1 from rest_framework import serializers
2 from .models import Select
3 
4 
5 class SelectSerializer(serializers.ModelSerializer):
6     class Meta:
7         model = Select
8         fields = ('id', 'title', 'a', 'b', 'c', 'd', 'select_answer', 'type')

编写常规Django视图

让我们看看如何使用我们的新Serializer类编写一些API视图。

编辑demo/views.py文件,然后添加以下内容。

1 from rest_framework import viewsets
2 from .models import Select
3 from .serializers import SelectSerializer
4 
5 
6 # Create your views here.
7 class SelectViewSet(viewsets.ModelViewSet):
8     queryset = Select.objects.all()
9     serializer_class = SelectSerializer

编写URL视图

最后,我们需要连接这些视图。创建demo/urls.py文件:

 1 from django.conf.urls import url, include
 2 from rest_framework.routers import DefaultRouter
 3 from .views import SelectViewSet
 4 
 5 
 6 router = DefaultRouter()
 7 router.register(r'select',SelectViewSet)
 8 
 9 urlpatterns = [
10     url('', include(router.urls)),
11 ]

测试我们对Web API的第一次尝试

启动Django的开发服务器。

python manage.py runserver

在浏览器中输入   http://127.0.0.1:8000/ 访问测试

原文地址:https://www.cnblogs.com/zhouzhishuai/p/10400928.html