Django - 가상환경 세팅 및 프로젝트 생성

jomminii_before·2020년 2월 6일
0

장고를 처음 접해보면서, 인스타그램의 백엔드를 매우 기초적인 수준으로 클론 해보고 있습니다.

1. 가상환경 세팅

먼저 프로젝트를 생성하기 전에 가상환경을 세팅해야합니다. 각각의 프로젝트가 사용하는 파이썬, 장고 등의 언어, 프레임워크 버전이 다르기때문에, 서로 충돌이 나지 않기 위해 보통 프로젝트를 새로 생성할 때 해당 프로젝트를 위한 가상환경을 세팅합니다.

가상환경 세팅은 anaconda의 축소판인 miniconda로 진행합니다. miniconda는 anaconda에서 머신러닝 등 현재 사용하지 않을 기능을 뺀 버전이라고 하네요!
설치 과정은 생략합니다.

a. 가상환경 생성

가상환경을 생성하는 명령어는 아래와 같습니다.

➜ conda create -n <name> <python version>   # 명령어 구조

➜ conda create -n westa-posting python=3.8  # 실제 명령어 작성
~~~~
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate westa-posting
#
# To deactivate an active environment, use
#
#     $ conda deactivate

설치가 되는 도중 나오는 선택사항들은 "y"를 누르고 넘겨주시면 됩니다. 위와 같은 결과가 마지막에 출력되면 가상환경 생성이 완료된 것 입니다. 실제로 생성이 된게 맞는지 확인해보려면 conda env list를 입력해보면 됩니다.

➜ conda env list
# conda environments:
#
base                  *  /Users/LeeJongMin/conda
westa-posting            /Users/LeeJongMin/conda/envs/westa-posting

위와 같이 가상환경이 설치된 리스트가 나타납니다. base의 경우 기본적으로 설치되는 것이니 무시하시면 됩니다. 한 가지 기억하면 좋을 부분은 base는 현재 내 컴퓨터의 환경이 아니라는겁니다. base도 하나의 가상환경으로 보셔야합니다.

그리고 나서 프로젝트 생성을 위해 방금 만든 가상환경으로 진입해야합니다.

➜ conda actiate <가상환경 이름>  # 명령어 구조
➜ conda activate westa-posting  # 실제 명령어 작성
(westa-posting)  LeeJongMin@sherlock12  ~/Wecode_Project/westa-posting 

저는 현재 쉘을 커스터마이징해놔서 구조가 좀 특이하긴한데, 라인의 맨 앞쪽에 (westa-posting)처럼 가상환경 이름이 생겨나면 가상환경 진입에 성공한 것 입니다. 참고로 가상환경에서 빠져나오는 명령어는 conda deactivate입니다.

b. 장고 설치

이제 가상환경에 장고를 설치 해보겠습니다. 장고는 파이썬과 마찬가지로 꼭! 가상환경에 진입한채로 설치해야합니다. 해당 프로젝트가 아닌 다른 환경에서 설치가 되면 충돌이 일어날 수 있거든요.

장고를 설치하기 위한 명령어는 pip install django 입니다. 위에서 파이썬을 설치할때와 달리 버전을 따로 적지 않아도 최신 버전의 장고가 설치됩니다.
이런저런 내용이 출력되다가 아래와 같은 내용이 나오면 설치가 완료됩니다.

➜ pip install django
~~~
Installing collected packages: sqlparse, pytz, asgiref, django
Successfully installed asgiref-3.2.3 django-3.0.3 pytz-2019.3 sqlparse-0.3.0

2. 프로젝트 생성

a. 명령어를 통한 프로젝트 생성

가상환경은 세팅이 완료되었고, 이제 프로젝트를 생성하려고 합니다.
프로젝트 생성은 아래의 명령어로 진행합니다.
*tree 명령어는 tree 패키지를 따로 설치해야 사용할 수 있습니다. ex) brew install tree

➜ django-admin startproject <프로젝트명>    # 명령어 구조
➜ django-admin startproject westa_posting  # 실제 명령어 작성
➜ tree westa_posting					   # 생성된 프로젝트 확인
westa_posting
├── manage.py
└── westa_posting
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

프로젝트를 생성한 후 파인더나 트리 명령어를 통해 해당 디렉토리를 확인해보면, 위와 같이 새로운 디렉토리와 파일들이 생성된 것을 볼 수 있습니다.

b. 프로젝트 settings 설정

프로젝트를 진행하기 전에 현재 상황에 맞는 settings를 설정해줘야 합니다.
일단 저 같은 경우는 연습하는 용도이기 때문에 ALLOWED_HOSTS를 전체 허용으로 바꿔줬습니다.

ALLOWED_HOSTS = []
-> ALLOWED_HOSTS = ['*']

그리고 이번 클론 프론트와 백엔드의 역할 구분을 확실히 나눠서 하기에, 기존에 만들어진 어드민 부분을 사용하지 않을 예정이고, auth나 csrf 등 권한, 보안적인 부분도 배재하고 진행할 예정입니다. 그래서 다음의 요소를 각각 주석처리하였습니다.

INSTALLED_APPS = [
  # 'django.contrib.admin',
  # 'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
  # 'django.middleware.csrf.CsrfViewMiddleware',
  # 'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

이제 프로젝트 세팅은 끝났고, 다음 글에서는 기능을 담당하는 앱을 만들어보겠습니다.

profile
https://velog.io/@jomminii 로 이동했습니다.

0개의 댓글