使用Django REST framework编写接口
Django Rest framework 流程介绍
1、 创建Models,也就是建立数据库
2、 Serialiers 序列化数据/反序列化数据(将数据库取出或者将请求过来的数据保存到数据库)
3、 ViewSet 根据客户端的请求(GET, POST),返回 Serialiers处理的数据
4、 Routers 注册ViewSet到url
5、 Urls
环境介绍
1、版本介绍
Python版本:
PS D:\project\djceleryt> python -V
Python 2.7.15
Django版本:
Django==1.11
Djangorestframeworka版本:
Djangorestframework==3.4.0
2、 python插件安装
pip install Django==1.11
pip install Djangorestframework==3.4.0
3、 建立应用建立app
django-admin startproject djceleryt
python manage.py startapp verify
4、 在verify目录中建立数据库
verify/models.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
from django.db import models
# Create your models here.
class Student(models.Model):
name = models.CharField(max_length=32, null=True)
sex = models.BooleanField()
age = models.IntegerField()
sc = models.CharField(max_length=32, null=True)
5、 建立serialiers
verify/serializers.py
#coding: utf-8
from rest_framework import serializers
from django.contrib.auth.models import User, Group
from verify.models import *
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('url', 'username', 'email', 'groups')
class GroupSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Group
fields = ('url', 'name')
class StudentSerializer(serializers.ModelSerializer):
class Meta:
model = Student
#fields = ('name', 'sex', 'age', 'sc')
fields = '__all__'
6、 view文件中建立ViewSets
verify/views.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.permissions import IsAuthenticated
from django.contrib.auth.models import User, Group
from verify.models import *
from rest_framework import viewsets
from rest_framework import status
from rest_framework.response import Response
from verify import serializers
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = serializers.UserSerializer
class GroupViewSet(viewsets.ModelViewSet):
queryset = Group.objects.all()
serializer_class = serializers.GroupSerializer
class StudentViewSet(viewsets.ModelViewSet):
queryset = Student.objects.all()
serializer_class = serializers.StudentSerializer
7、 设置Routes
verify/urls.py
from django.conf.urls import url, include
from django.contrib import admin
from rest_framework import routers
from verify import views
routers = routers.DefaultRouter()
routers.register(r'student', views.StudentViewSet)
urlpatterns = [
url(r'', include(routers.urls)),
#url(r'^admin/', admin.site.urls),
]
8、 设置urls包含verify的urls
djceleryt/urls.py
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/', include('verify.urls')),
]
9、 设置setting.py install
djceleryt/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework.authtoken',
'verify',
'djcelery',
]
'verify'、framework'、rest_framework.authtoken(rest_framework框架认证使用)、'djcelery(异步任务)'为新增的app