서비스하기 전까지는 Linux가 아닌 Windows 또는 Mac 환경에서 작업하는 것이 편하다.

여기서는 윈도우에서 편하게 개발하기 위한 Back-End 환경을 조성하는 방법을 알아보자.


* 개발 환경

OS: Windows 10

Language: Python 3.7

IDE: Pycharm community

Framework: Django


1. Python과 PyCharm 설치

아래 과정대로 간단히 설치 하도록 한다.

http://7stocks.tistory.com/6?category=658880


2. Django 설치

pip를 이용하여 간편하게 설치 한다.

$ pip install django 


RESTful 기반의 웹을 만들 것이므로 REST Framework도 함께 설치 해 준다.

$ pip install django-rest-framework


3. Django 프로젝트 시작 및 앱 설치

- 진행하기 전 알아둘 것!

PyCharm 프로젝트는 다수의 Django 프로젝트를 보유할 수 있으며 Django 프로젝트는 다수의 Django App을 보유할 수 있다.

- PyCharm을 구동 후 프로젝트를 생성

다음과 같이 새 프로젝트를 생성한다.


- Django 프로젝트 생성

PyCharm 터미널(단축키: Alt + F12)을 띄운 뒤 다음과 같은 명령어로 Django 프로젝트를 생성한다.

> django-admin startproject (프로젝트명)


프로젝트의 이름을 지을 때 파이썬이나 장고 컴포넌트의 이름은 피해준다. 특히 django(장고 어플리케이션 이름) 나 test(디폴트 파이썬 패키지 이름) 등의 이름의 사용은 꼭 피해 준다. 만약 생성에 실패하였다면, django-admin 실행 문제를 참고한다.


생성에 성공한다면 다음과 같이 생성됨 폴더를 확인 할 수 있다.



여기서 각 폴더 및 파일들의 속성을 알아보자!


최상 루트 폴더 FirstProject/: 프로젝트 폴더를 담고 있는 단순한 컨테이너이다. 이 디렉터리의 이름은 장고 어플리케이션에게는 아무 상관이 없으며 어떤 이름으로도 변경 가능하다. django-admin and manage.py에서 자세한 내용을 알 수 있다.


manage.py: 장고 프로젝트와 다양한 방법으로 커뮤니케이션 할 수 있는 커맨드라인 유틸리티 이다. 


두번째 단의 FirstProject/ 폴더는 실제 프로젝트의 파이썬 패키지이다. 폴더의 이름이 파이썬 코드를 임포트할 때 사용할 실제 파이썬 패키지 이름 이다. (e.g. FirstProject.urls)


mysite/__init__.py: 아무것도 들어 있지 않은 빈 파일이며 파이썬 에게 현재 폴더가 파이썬 패키지임을 알려 준다. 파이썬 초보자라면 more about packages를 참고 한다.


mysite/settings.py: 장고 프로젝트의 셋팅과 설정이 포함된 파일이다. Django settings에서 자세한 사용 방법을 알 수 있다.


mysite/urls.py: 장고 프로젝트 안의 URL을 선언하는 곳 입니다. 장고 사이트의 컨텐츠 목록이다. URL dispatcher에서 자세한 내용을 알 수 있다.


mysite/wsgi.py: WSGI 프로토콜을 사용하는 웹서버가 프로젝트의 페이지를 보여주기 위하여 가장 먼저 사용하는 파일이다. How to deploy with WSGI에서 자세한 내용을 알 수 있다.


- Django 앱 생성

여기서 "api"라는 앱을 임시로 생성 했다.

> cd "Django 프로젝트 폴더"

> django-admin startapp api


다음과 같은 폴더가 생성됨을 확인 할 수 있다.



- 서버 구동하기

Django 프로젝트 폴더의 manage.py를 이용하여 서버를 구동시킨다.

> python manage.py runserver


실행 후 http://127.0.0.1:8000에 접속해 보면 다음과 같이 Django가 구동 된 화면을 볼 수 있다.



'Deprecated > Django' 카테고리의 다른 글

Django 개발 포스트 종료 --------------------------  (1) 2019.07.14
Django RESTful frameworks  (0) 2018.08.26

+ Recent posts