(초보자용) Django로 간단한 webAPI를 만들어 봅니다.

7598 단어 WebAPI파이썬장고

개요



 이 기사는 초보자 자신이 RESTful API와 swift로 iPhone 용 쿠폰 전달 서비스를 개발한 절차를 차례로 기사로하고 있습니다. 기술 요소를 하나씩 조사하면서 실장했기 때문에 매우 먼 실장이 되고 있습니다.

이번은 pipenv로 만든 장고 환경에서 파이썬을 움직여보십시오. 로 만든 환경에서, Django의 기능을 사용한 심플한 webAPI를 만듭니다.

참고


  • Python Django 슈퍼 입문 카시다 츠야 노 히데와 시스템
  • WebAPI에 대한 설명

  • 환경



    Mac OS 10.15
    VSCode 1.39.2
    pipenv 2018.11.26
    파이썬 3.7.4
    장고 2.2.6

    webAPI 사양



    쿠폰 코드를 요청하면 쿠폰 코드에 묶는 쿠폰의 내용을 HTTP로 응답한다.
  • 요청 파라미터: coupon_code
  • coupon_code에 0001을 지정하면 "1000 엔 할인 쿠폰!"이라는 문자열이 반환됩니다
  • coupon_code에 0002를 지정하면 "10 % 할인 쿠폰!"이라는 문자열이 반환됩니다.
  • 코드를 지정하지 않거나 존재하지 않는 코드를 입력하면 "Error : Not found coupon code!"라는 문자열이 반환됩니다.

    절차


  • coupon django 앱 만들기
  • views.py에 응답 처리 구현
  • 쿠폰 앱 아래에 urls.py 만들기
  • 프로젝트 아래의 urls.py 편집
  • 동작 확인

  • 쿠폰의 장고 앱 만들기



    pipenv shell 명령을 사용하여 pipenv의 가상 환경으로 들어가 manage.py가 있는 디렉토리로 변경합니다.


    coupon이라는 django 앱을 만듭니다.


    VSCode에서 폴더를 열면 쿠폰 앱이되어 있습니다.


    views.py에 응답 처리 구현



    아래와 같이 coupon이라는 함수를 만들고 쿠폰의 내용을 하드 코딩했습니다. 요청 변수 (coupon_code)로 전송되는 쿠폰 코드에 따라 if 문으로 쿠폰을 발행합니다. 응답은 Django HttpResponse 메서드를 사용하여 Http로 반환합니다.

    views.py
    from django.shortcuts import render
    from django.http import HttpResponse
    
    # Create your views here.
    def coupon(request):
        if 'coupon_code' in request.GET:
            coupon_code = request.GET['coupon_code']
            if coupon_code == '0001':
              result = '1000円引きクーポン!'
            elif coupon_code == '0002':
                result = '10%引きクーポン!'
            else:
                result = 'Error:Not found coupon code!'
            return HttpResponse(result)
    

    쿠폰 앱 아래에 urls.py 만들기



    다음은 경로를 설정합니다. 먼저 coupon 앱 아래에 urls.py를 새로 만듭니다.

    coupon/urls.py
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.coupon, name='coupon'),
    ]
    

    프로젝트 아래의 urls.py 수정



    다음은 프로젝트 아래의 urls.py를 편집합니다. urlpatterns 의 부분에 path('coupon/',include('coupon.urls')) 를 추가했습니다.

    ami_coupon_api/urls.py
    from django.contrib import admin
    from django.urls import path,include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('hello/', include('hello.urls')),
        path('coupon/', include('coupon.urls'))
    ]
    

    동작 확인



    변경 사항을 저장하고 장고 웹 서버를 시작합니다.
    $ python manage.py runserver
    

    브라우저에서 아래 URL에 액세스.http://127.0.0.1:8000/coupon/?coupon_code=0001올바른 응답이 바뀌는 것을 확인.


    다른 파라미터를 입력하는 패턴도 확인

    쿠폰 코드 0002의 쿠폰 요청http://127.0.0.1:8000/coupon/?coupon_code=0002

    존재하지 않는 쿠폰 코드를 지정한 경우http://127.0.0.1:8000/coupon/?coupon_code=0003

    이상으로 매우 심플한 webAPI의 구현이 가능했습니다. 여기에서 아래와 같이 개조해, 실용에 견딜 수 있는 webAPI로 해 갑니다.
  • Json 형식으로 응답
  • 하드 코딩이 아닌 DB에서 쿠폰 정보 관리
  • Rest full API로 개조

  • 다음 번에는 학습을 위해 장고 템플릿 기능을 사용해보십시오.

    좋은 웹페이지 즐겨찾기