Django REST framework框架介紹和基本使用

Django REST framework介紹

Django REST framework是基於Django實現的一個RESTful風格API框架,可以幫助咱們快速開發RESTful風格的API。git

官網:https://www.django-rest-framework.org/github

中文文檔:https://q1mi.github.io/Django-REST-framework-documentation/web

Django REST framework安裝與配置

安裝

pip install djangorestframework

配置

若是想要獲取一個圖形化的頁面,須要將 rest_framework 註冊到項目的INSTALL_APPS中。django

 

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'bms.apps.BmsConfig',
    'rest_framework',
]

 

基於Django實現RESTful API

路由

urlpatterns = [
    url(r'^users', Users.as_view()),
]

視圖

from django.views import View
from django.http import JsonResponse
 
class Users(View):
    def get(self, request, *args, **kwargs):
        result = {
            'code': 0,
            'data': 'response data'
        }
        return JsonResponse(result, status=200)
 
    def post(self, request, *args, **kwargs):
        result = {
            'code': 0,
            'data': 'response data'
        }
        return JsonResponse(result, status=200) 

基於Django REST Framework框架實現

路由

from django.conf.urls import url, include
from web.views.s1_api import TestView
 
urlpatterns = [
    url(r'^test/', TestView.as_view()),
]

視圖

from rest_framework.views import APIView
from rest_framework.response import Response
 
 
class TestView(APIView):
    def dispatch(self, request, *args, **kwargs):
        """
        請求到來以後,都要執行dispatch方法,dispatch方法根據請求方式不一樣觸發 get/post/put等方法
         
        注意:APIView中的dispatch方法有好多好多的功能
        """
        return super().dispatch(request, *args, **kwargs)
 
    def get(self, request, *args, **kwargs):
        return Response('GET請求,響應內容')
 
    def post(self, request, *args, **kwargs):
        return Response('POST請求,響應內容')
 
    def put(self, request, *args, **kwargs):
        return Response('PUT請求,響應內容')

上述就是使用Django REST framework框架搭建API的基本流程,重要的功能是在APIView的dispatch中觸發。api

相關文章
相關標籤/搜索