RESTful-API


作用

对于同一资源定位(URI),根据method不同,对资源进行不同的操作。


状态码

服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的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 - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。


django_rest_framework

通过各种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' ))
]

浏览器效果

827870-20160503225307372-267452505.png


还能在页面添加数据

827870-20160503225308201-2054885323.png











转载于:https://www.cnblogs.com/daliangtou/p/5447831.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值