标签:
服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的HTTP动词)。
200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT - [DELETE]:用户删除数据成功。
400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。
通过各种method获取或修改后台数据,直接显示在前端,可以是json等其它格式,替代了以前的ajax去后端获取数据只能返回json,还要写model等步骤。?
http://www.django-rest-framework.org/tutorial/quickstart/
安装(具体版本请参考 Django-rest-framework.org)
1 2 3 | pip install djangorestframework pip install markdown pip install django - filter |
添加项目
1 2 3 4 | INSTALLED_APPS = [ ....... ‘rest_framework‘ , ] |
serializer.py
1 2 3 4 5 6 | from rest_framework import serializers from models import UserProfile class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = UserProfile fields = ( ‘url‘ , ‘name‘ , ‘email‘ ) |
rest_views.py
1 2 3 4 5 6 7 | from rest_framework import viewsets from models import UserProfile from serializer import UserSerializer class UserViewSet(viewsets.ModelViewSet): queryset = UserProfile.objects. all () serializer_class = UserSerializer |
总urls.py,把api的全交给rest_urls.py处理
1 2 3 4 5 6 7 | from django.conf.urls import include from asset import rest_urls urlpatterns = [ ...... url(r ‘^api/‘ , include(rest_urls) ), ] |
rest_urls.py
1 2 3 4 5 6 7 8 9 10 | from django.conf.urls import url, include from rest_framework import routers import rest_views router = routers.DefaultRouter() router.register(r ‘users‘ , rest_views.UserViewSet) urlpatterns = [ url(r ‘^‘ , include(router.urls)), url(r ‘^api-auth/‘ , include( ‘rest_framework.urls‘ , namespace = ‘rest_framework‘ )) ] |
效果
标签:
原文地址:http://www.cnblogs.com/daliangtou/p/5447831.html