· Url api
1 安装rest_framework
pip install django-filter
pip install djangorestframework
2 配置settings
INSTALLED_APPS = [
...
'rest_framework',
]
3 编写models
from rest_framework import serializers
...
class Student(models.Model):
student_name = models.CharField(max_length=20,verbose_name=u'学生姓名')
head_pose_up = models.IntegerField(default=1,verbose_name=u'抬头')
class Meta:
verbose_name = u'学生信息'
verbose_name_plural = verbose_name
def __str__(self): return self.student_name
class StudentSerializer(serializers.ModelSerializer):
# ModelSerializer和Django中ModelForm功能相似
# Serializer和Django中Form功能相似
class Meta:
model = Student
# 和"__all__"等价
fields = ('student_name', 'head_pose_up')
4 编写views
from apps.models import Student,StudentSerializer
from rest_framework.reverse import reverse
from rest_framework.response import Response
from rest_framework.renderers import JSONRenderer
from rest_framework.decorators import api_view
from rest_framework.status import HTTP_201_CREATED,HTTP_400_BAD_REQUEST
@api_view(['GET', 'POST'])
def api_student(request, format=None):
if request.method == 'GET':
Stu = Student.objects.all()
serializer = StudentSerializer(Stu, many=True)
return Response(serializer.data)
elif request.method == 'POST':
serializer = StudentSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=HTTP_201_CREATED)
return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)
5 编写ulrs
urlpatterns = [
...
path('api-index/',lookface.views.api_student),
...
]
6 have a look
· 访问api跨域问题
1 访问
2 跨域提示,控制台查看
3 django后端解决,安装Django-cors-headers,配置settings
pip install django-cors-headers
INSTALLED_APPS = [
...
'corsheaders',
...
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',#放到中间件顶部
...
]
CORS_ORIGIN_ALLOW_ALL = True