• 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'))
    ]

    浏览器效果



    还能在页面添加数据












  • 相关阅读:
    [javaSE] 数组(获取最值)
    [javascript] Promise简单学习使用
    [javaSE] 基本类型(String相关)
    [android] 手机卫士黑名单功能(ListView结合SQLite增删改)
    [PHP] 重回基础(IO流)
    [PHP] 重回基础(Array相关函数)
    [PHP] 重回基础(date函数和strtotime函数)
    [HTML5] Canvas绘制简单图片
    [javaSE] 集合框架(TreeSet)
    [android] 手机卫士黑名单功能(ListView优化)
  • 原文地址:https://www.cnblogs.com/daliangtou/p/5447831.html
Copyright © 2020-2023  润新知