데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      회사에서 REST API 활용하기 (2-1부)

      심재훈 22.03.03
      3,065 5 0

      이전글

      회사에서 REST API 활용하기 (1부)

      https://devocean.sk.com/blog/techBoardDetail.do?ID=163584


       

      이번 글에서는 장고와 장고REST를 이용해 REST API를 만들어보겠습니다.  

       

       

      SK 그룹사 정보를 관리할 수 있습니다!

       

       

      중간 과정을 git commit 로그로 확인할 수 있습니다.

      결과물 Preview: https://devoceansk.herokuapp.com/api/company/

       

       


      devocean-django

      https://github.com/JaehunSim/devocean-django


       

      장고 프로젝트를 시작하는 과정입니다. 커맨드창 (Windows powershell, cmd 등)에서 명령어를 실행합니다.

      https://docs.djangoproject.com/ko/4.0/intro/

      장고 공식문서를 참고해보세요~

       

      처음 Setup 과정

      1. requirements 설치

        1. python -m pip install -r requirements.txt

      2. 프로젝트 시작

        1. django-admin startproject settings

        2. settings/ 에 있는 파일을 root에 옮겨줍니다. (ex. devocean-django/)

      3. 앱 시작

        1. python manage.py startapp company

      https://github.com/JaehunSim/devocean-django/tree/f630e7d5e4618cf2554648967a0345e24f67b723

       


       

      로컬에서 배포후 사용할 수 있으나, 외부에서 이용하려면 클라우드가 편합니다.

      무료로 사용할 수 있고 배포가 간편한 Heroku를 이용해봅시다. 

       

      Heroku 배포용 환경 설정파일 생성

      1. runtime.txt

        1. python-3.8.11

        2. 어떤 Docker 이미지를 베이스로 생성할지 정해줍니다.

      2. Procfile

        1. web: gunicorn settings.wsgi --log-file -

        2. gunicorn 을 이용해 앱을 시작합니다.

      3. settings/settings.py 수정

        1. 주석을 지우고, STATIC_ROOT 선언을 해줍니다.

        2. DB NAME 경로를 수정해줍니다.

        3. ALLOWED_HOSTS = ["*"] 로 전부 접근 허용해줍니다.

      https://github.com/JaehunSim/devocean-django/tree/d379d4bb908cf7fa8c6cabb1248d163171837aa2

       


       

      App 추가

      settings/settings.py INSTALLED_APPS 에 사용할 앱을 추가합니다

      1. company

      2. rest_framework

      https://github.com/JaehunSim/devocean-django/tree/8b628401b20c760bd75fa718a7fed8336d007a7e

       


       

      DRF 공식문서를 참고해보세요~

      https://www.django-rest-framework.org/tutorial/quickstart/

       

      REST API Setup

      1. company/models.py

        1. 모델을 정의해줍니다. DB와 연동되며, 엑셀의 column 부분을 정의해주는 것과 비슷합니다.

      2. company/serializers.py

        1. python과 DB가 원활히 연결될 수 있도록 명시해주는 부분입니다. rest_framework를 이용해서 쉽게 구현가능합니다.

      3. company/views.py

        1. 로직을 처리해주는 부분입니다. REST API를 가볍게 구현할 수 있습니다.

      4. settings/urls.py

        1. 어떤 url 경로로 접근할지 명시해주는 부분입니다. CompanyList, CompanyDetail 연결을 해줍니다.

      5. settings/settings.py

        1. DB를 postgresql로 바꿔야 합니다. (기본DB인 sqlite3는 heroku에서 증발해버립니다..)

          1. db_database_url 설정도 해줍니다.

        2. css를 제대로 적용하기위해 whitenoise 미들웨어를 추가합니다.

       

      Model을 만들었으면 DB에 연동을 해야합니다. Heroku에서 아래 명령어를 입력하면 됩니다.

      1. Heroku console을 열고

      1. heroku run bash 을 입력합니다. bash 창에서 3,4번 진행합니다.

      1. python manage.py makemigrations

      1. python manage.py migrate

      https://github.com/JaehunSim/devocean-django/tree/0aeb59f726bf02e3578120852cf4e7b4c318de6e

       


       

      탐험해보기

      https://devoceansk.herokuapp.com/api/company/

      끝났습니다~

      여기서 REST API 실험을 해볼 수 있습니다!

      Heroku가 아니라면 python manage.py runserver 로 확인할 수 있습니다.

      이럴경우 기본 sqlite3 DB를 쓰면 되고, 127.0.0.1:8000 으로 접근해보세요.

       

      데이터 넣기

      HTTP API를 이용해 데이터를 넣을 수 있습니다.

      python requests 를 이용해 넣어보겠습니다.

      import requests
      ​
      url = r"https://devoceansk.herokuapp.com/api/company/"
      data = {"name": "SK하이닉스",
              "field": "반도체",
              "address": "경기도 이천시 부발읍 경충대로 2091",
              "latitude": 37.2497159,
              "longitude": 127.4825281,
              "total_employees": 22254,
              "revenue": 429978,
              "operating_income": 124103,
              "net_income": 96162}
      requests.post(url, data=data)

       


       

      결과

      https://devoceansk.herokuapp.com/api/company/

      https://devoceansk.herokuapp.com/api/company/1

       


       

      다음 글에서는...

      웹을 만들기 위한 Backend 셋업은 끝났습니다. 

      이제 Bootstrap으로 Front를 셋업해서 사용자들이 편하게 이용할 수 있게 하고자 합니다!

       

       

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      심재훈 님의 최신 블로그

      더보기
      동영상 기고하기