장고 rest프레임 워 크 RESTful API 구현

4226 단어 Djangorest framework
1.REST 가 무엇 입 니까?
자원 을 대상 으로 하 는 것 은 REST 의 가장 뚜렷 한 특징 이 고 자원 은 서버 를 보 는 방식 으로 서버 를 많은 분 산 된 자원 으로 구성 하 는 것 으로 간주한다.모든 자원 은 서버 에서 이름 을 붙 일 수 있 는 추상 적 인 개념 이다.자원 은 추상 적 인 개념 이기 때문에 서버 파일 시스템 의 한 파일,데이터 베이스 중의 표 등 구체 적 인 것 을 대표 할 수 있 을 뿐만 아니 라 자원 디자인 을 얼마나 추상 적 이 고 추상 적 으로 할 수 있다.상상력 이 허용 되 고 클 라 이언 트 응용 개발 자가 이해 할 수 있다.
대상 을 대상 으로 하 는 디자인 과 유사 하 게 자원 은 명 사 를 핵심 으로 조직 되 고 가장 먼저 주목 하 는 것 은 명사 이다.하나의 자원 은 하나 이상 의 URI 로 표시 할 수 있다.URI 는 자원 의 이름 이자 웹 에 있 는 자원 의 주소 입 니 다.어떤 자원 에 관심 이 있 는 클 라 이언 트 응용 프로그램 은 자원 의 URI 와 상호작용 을 할 수 있다.같은 자원 에 대한 다른 작업자원 은 서버 에서 이름 을 붙 일 수 있 는 추상 적 인 개념 으로 자원 은 명 사 를 핵심 으로 조직 되 는데 가장 먼저 주목 하 는 것 은 명사 이다.
REST 는 통 일 된 인 터 페 이 스 를 통 해 자원 에 대해 각종 조작 을 수행 해 야 한다 고 요구한다.모든 자원 에 대해 한 조 의 유한 한 조작 만 수행 할 수 있 습 니 다.(7 가지 HTTP 방법:GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS)
2.RESTful 이 무엇 입 니까?
API 가 REST 구조 에 맞 게 설 계 된 API.
개념 은 더 이상 말 하지 않 겠 습 니 다.구체 적 으로 다음 의 간단 한 예 를 통 해 Django 프레임 워 크 가 RESTful 을 어떻게 실현 하 는 지 보 겠 습 니 다.
3.rest프레임 워 크 모듈
1.pip 명령 으로 다운로드:pip 3 install djangorestframework

2.Django 프로젝트 새로 만 들 기


3.apitest 앱 만 들 기

cd d:\Tool           #    Tool  
python manage.py startapp apitest  #  apitest  
디 렉 터 리 구조:

4.settings.py 를 열 고 설정 을 추가 합 니 다.

INSTALLED_APPS = [
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'apitest',              #  apitest app
  'rest_framework',          #  rest_framework
]


#    REST_FRAMEWORK  
REST_FRAMEWORK = {
  # Use Django's standard `django.contrib.auth` permissions,
  # or allow read-only access for unauthenticated users.
  'DEFAULT_PERMISSION_CLASSES': [
    'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
  ],
  'DEFAULT_RENDERER_CLASSES': (
    'rest_framework.renderers.JSONRenderer',
  ),
  'DEFAULT_PARSER_CLASSES': (
    'rest_framework.parsers.JSONParser',
  )
}
5.apitest 디 렉 터 리 에 api.py 를 새로 만 들 고 테스트 코드 를 작성 합 니 다.

#coding=utf-8
from rest_framework import permissions
from rest_framework.response import Response
from rest_framework.decorators import api_view, permission_classes
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
@api_view(http_method_names=['post'])        #   post
@permission_classes((permissions.AllowAny,))
def inventory(request):
  parameter = request.data
  id = parameter['data']
  if id == 1:
    data = 'There are three dogs'
  elif id == 2:
    data = 'There are two dogs'
  else:
    data = 'nothing'
  return Response({'data':data})
6.urls.py 에 새로 만 든 api 경로 추가:

urlpatterns = [
  path('admin/', admin.site.urls),
  path('food/', api.inventory),        #  api inventory  
]
위 에서 설정 한 후 로 컬 디 버 깅 에서 명령 을 입력 하 십시오:python manage.py runserver 8000

자,서버 쪽 코드 를 다 썼 습 니 다.우 리 는 약 속 된 명사 food 를 통 해 자원 을 얻 거나 변경 할 수 있다.그리고 작은 스 크 립 트 를 써 서 위의 인 터 페 이 스 를 테스트 합 니 다.

import requests

url= 'http://127.0.0.1:8000/food/'
data = {'data':2}
h=requests.post(url,json=data)
print(h.text)
출력:

테스트 OK
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기