PyCharm과 함께 DJango와 RestFramework를 활용한 웹 사이트 구축하기

이번 시간에는 Python을 사용하는 강력한 웹 프레임 워크(Web Framework)인 쟝고(django)에 대해서 알아보고자 합니다.

이 포스팅에서 사용되어지는 환경은 다음과 같습니다.

  • Ubuntu GNOME 14.10
  • Python 3.2.x
  • Django 1.7.3
  • Django REST framework 3.0.4
  • Django REST Swagger 0.2.8
  • PyCharm Professional Edition 4.0.4

 

시작하기 전에…

이 포스팅은 기본적으로 Python에 대한 기초적인 지식을 가지고 있고, Python 개발에 대한 개발 환경이 구축되어진 사람을 중심으로 설명합니다. Python 설치 방법이나 기타 사항은 관련 포스팅을 참고하여 주세요.

Django 설치하기

Django는 Python 용 웹 프레임 워크 중 하나로, Instagram, Pinterest 등에서 사용하고 있는 웹 프레임 워크 입니다. 공식 홈페이지에 있는 Django의 특징을 한번 보자면,

– 정말 빠르고
– 웹 핸들링을 위한 모든게 준비되어 있으며
– 보안에 강력하며
– 스케일 가능하며
– 엄청나게 다목적인 프레임 워크

라고 쓰여져 있습니다. 판단은 사용자들의 몫이지만, 확실한 사실은 강력한 웹 프레임 워크 중 하나라는 건 사실이라는 거죠

 

django를 설치하기 위해서는 여러가지 방법이 있습니다. 이곳에서 django를 다운로드할 수 있습니다. pip를 이용하는 방법이 가장 보편적이며, 이곳에서는 PyCharm과 함께 할 것이니…… PyCharm으로 설치하는 법을 알아보도록 하겠습니다.

PyCharm 첫 실행 화면
PyCharm을 처음 실핸한 화면 입니다. 새로운 프로젝트 생성을 위해 Create New Project를 눌러줍시다.
프로젝트 템플릿 선택하기
PyCharm Professional Edition의 경우, 위 그림처럼 Django를 선택할 수 있습니다. 단, Community Edition의 경우는 위 그림처럼 뜨지 않습니다. Community Edition의 경우는 별도로 서술하도록 하겠습니다.
프로젝트 설정 마지막
간단하게 프로젝트 명을 입력하고, 인터프리터 설정과 템플릿 설정 / admin 옵션 등등을 확인 합니다. python을 정상적으로 설치해 뒀다면, 인터프리터가 자동으로 잡힙니다. 혹 찾지 못한다면 톱니바퀴 모양을 눌러서 수동으로 설정하셔도 됩니다.
프로젝트가 생성된 모습
그렇게 하면 자동으로 프로젝트가 생성됩니다. django-admin startproject djano_rest_test 란 명령을 내려서 생성한거나 이거나 똑같습니다. PyCharm에 필요한 정보를 설정했냐 아니냐 정도의 차이만 있죠.
Settings의 화면
이제 File -> Settings 또는 Ctrl + Alt + S 키를 눌러서 설정 화면으로 들어 갑니다. 기본적으로 Django는 설치해 주지만, REST framework와 Swagger는 설치해주지 않으므로, 설치해주러 가야겠죠?
인터프리터 설정
Project 메뉴에 Project Interpreter 항목에 들어가면, 위 그림과 같이 인터프리터에 설정되어져 있는 다양한 패키지를 관리할 수 있는 화면이 나타납니다. 업데이트를 하거나 설치를 하거나 할 수 있게 말이죠. pip와 setuptools는 보이시는 대로 업데이트를 눌러주시고, Django가 정상적으로 설치되어졌는지 확인 합니다.
패키지 설치하기
만약, 필요한 패키지가 없다면 Install 버튼을 눌러서 설치를 합니다. 여기서는 Django / djangorestframework / django-rest-swagger 3가지 패키지를 확인할 겁니다.
Django 확인
먼저 DJango를 확인하고,
djangorestframework 확인
djangorestframework 도 덩달아 확인하며,
django-rest-swagger 확인
마지막으로 django-rest-swagger 도 확인 합니다.(없다면 설치합니다.)
django에 설정하기
이제 왼쪽의 프로젝트에서 settings.py 파일을 찾고, 저희가 찾은 패키지들을 설정해 줍니다. rest_framework와 rest_framework_swagger 를 말이죠.
INSTALLED_APP 에 추가한 모습
이렇게 INSTALLED_APPS 에 rest_framework와 swagger를 각가 추가 합니다.

마치며…

이렇게 저희는…. django와 rest-framework, rest-framework-swagger의 설치를 끝 마쳤습니다. 끝 이냐구요? 네… 끝 입니다. 정말 끝 이냐구요? 이제 개발 시작하시면, 나머지는 REST와 REST-Swagger 가 알아서 해 줍니다. 못 믿으시겠다구요? 그럼, 간단한 예시를 하나 볼까요?

URL 추가

일단, 먼저 rest와 swagger가 기본적으로 제공하는 페이지를 연결해 보도록 하죠. settings.py에 INSTALLED_APP에 rest_framework와 rest_framework_swagger 를 설치하셨다면, url로 연결하는 일만 남습니다. urls.py 파일을 조금 수정해서 이렇게 만들어 볼까요?

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

URL 설정
urls.py 파일에 주소/rest-api/ 주소/rest-swagger/ 라는 2가지 진입점을 만들고, 각각 REST framework와 REST Swagger를 연결합니다. 즉, 해당 url에 rest_framework.urls 과 rest_framework_swagger.urls 를 포함하는 것이 전부 입니다.

urls.py를 수정하고 난 뒤, Run -> Debug 또는 Alt + Shift + F9 를 눌러서 디버그를 시작해 봅시다.

디버깅 모드
이렇게 말이죠. 그러면 간단한 서버가 하나 켜지고, 여기에 접속해 보면….
Page not found 지만, 의도한 결과죠?
기본 값으로 켜지는 127.0.0.1:8000번으로 접속하니 위와 같은 화면이 켜집니다. 그야 / 에 아무런 연결도 없으니 Page not found가 뜨죠. 하지만 디버깅 상태니, 다른 url 주소들이 뜨네요? 한번 swagger로 들어가 볼까요?
참 쉽죠?
오! REST Framework와 REST Swagger가 잘 설치되었나 봅니다. 잘 뜨네요!

 

진짜 마치며…

간단하게 REST Framework와 REST Swagger를 설치하는 방법을 한번 알아 봤습니다. 사실, 강력한 IDE와 함께 해서 더 쉽고 빨리 끝나긴 했습니다. (PyCharm Professional Edition은 0 정도이고, 개인 개발자 버전은 정도 합니다. 학생에게는 무료 버전도 제공하고, 스타트 업에는 50% 할인 혜택도 있으니… 자세한 건 해당 페이지를 참고해 주세요~)

물론 IDE가 아니라 하더라도 몇몇 타이핑만 하면 금방 셋팅은 끝이 납니다. 개발은 지금부터 시작이지만요. REST Swagger는 REST Framework로 작성된 url을 인식하여 자동으로 Swagger에 뿌려 줍니다. 따라서, 이렇게 셋팅을 하고 시작하면, 나머지는 REST API 작성만 신경쓰면 된다는 소리와 같죠.(물론 경우에 따라서는 커스텀해야 할 부분들이 넘쳐 흐르긴 합니다만.)

다음 시간에는 REST Framework를 이용하여 여러 API를 작성하고 디버깅하는 방법을 한번 알아보도록 하죠

 

– 2016년 7월 20일, 업데이트

hare 님이 알려주신 내용으로, Swagger 라이브러리에 대한 내용을 추가합니다.

DJango REST Swagger의 버전이 2.0.1 로 변경되면서, 많은 변화가 이루어진 거 같습니다. 자세한 내용은 좀 더 알아봐야겠지만, DJango REST Framework(이하 DRF라고 부릅니다.)의 최신 버전에서 추가된 Core API와 호환성 확보를 위해서 사용 방법 자체도 변경된 것으로 보입니다. 아무튼, 기존 Swagger는 간단하게 url을 추가해주면 되었지만, Swagger 버전이 2.0.0 이상 이면, 다음의 방법을 사용하셔야 합니다.

  1. Swagger를 위한 View를 만듭니다.
  2. SwaggerUIRenderer, OpenAPIRenderer 2개의 렌더러를 Decorator로 꾸며줍니다.
  3. 해당 View 를 URL에 등록하고, 해당 URL로 접근 합니다.

자세한 내용은 DJango Rest Swagger GitHub이 이슈를 참고하시거나, 예제로 올려져 있는 튜토리얼을 참고하시면 쉽게 따라하실 수 있을 거 같습니다.

 

해당 내용을 공유해 주신 Hare 님께 감사 인사 드립니다!

 

[출처] https://devissue.wordpress.com/2015/02/01/pycharm%EA%B3%BC-%ED%95%A8%EA%BB%98-django%EC%99%80-restframework%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EC%9B%B9-%EC%82%AC%EC%9D%B4%ED%8A%B8-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0/

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
252 파이썬-sql알케미-tutorial, sqlalchemy tutorial file 졸리운_곰 2018.08.27 185
251 Data Structures and Algorithm In python 파이썬으로 자료구조와 알고리즘 : 출처 인터넷 file 졸리운_곰 2018.08.27 315
250 Mastering Basic Algorithms in the Python Language 이북 출처 인터넷 file 졸리운_곰 2018.08.27 381
249 텐서플로우-#1 자료형의 이해 file 졸리운_곰 2018.08.15 272
248 How to build a simple neural network in 9 lines of Python code file 졸리운_곰 2018.08.14 294
247 node.js python-shell을 활용하여 python 실행 file 졸리운_곰 2018.08.14 365
246 Python, PyV8로 javascript 실행하기 file 졸리운_곰 2018.08.14 221
245 파이썬 플라스크 프레임워크 소개 졸리운_곰 2018.08.03 130
244 주피터(jupyter notebook) 원격 접속 file 졸리운_곰 2018.07.10 142
243 Pycharm 원격 서버 연결하기 file 졸리운_곰 2018.07.10 249
242 The Ultimate Flask Front-End – Part 2 file 졸리운_곰 2018.06.22 85
241 The Ultimate Flask Front-End file 졸리운_곰 2018.06.22 139
240 Django + djangorestframework + django_rest_swagger 시작 file 졸리운_곰 2018.05.27 65
239 Does Python SciPy need BLAS? 졸리운_곰 2018.05.26 85
» PyCharm과 함께 DJango와 RestFramework를 활용한 웹 사이트 구축하기 file 졸리운_곰 2018.05.22 192
237 Flask-RESTPlus에서 REST API와 Swagger 문서를 통합 file 졸리운_곰 2018.05.22 353
236 Building beautiful REST APIs using Flask, Swagger UI and Flask-RESTPlus file 졸리운_곰 2018.05.22 263
235 [Python] Flask & flask-restplus && swagger ui file 졸리운_곰 2018.05.22 147
234 Django에서 MySQL DB를 연동하기 pycharm file 졸리운_곰 2018.04.10 427
233 Python Flask 로 간단한 REST API 작성하기 file 졸리운_곰 2018.04.07 226
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED