장고 rest프레임 워 크 RESTful API 구현
4226 단어 Djangorest framework
자원 을 대상 으로 하 는 것 은 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
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.