TIL - Wecode | Django & Mysql 초기세팅(conda 가상환경)

한성봉·2021년 5월 22일
0

Django & Mysql 초기세팅(conda 가상환경)

Django 프레임워크를 이용해 가상환경 상에서 mysql을 이용해 데이터베이스 작업까지는 초기 세팅을 한번 해보자.! 처음 하는 거라 굉장히 어려웠다. 하지만 천천히 따라하고 반복 숙달하면 금방 익숙해 질 것 같다.

Django를 활용환 서버 구축의 기본 flow이다.


1. Conda가상환경, Mysql 설치

기본적으로 miniconda와 mysql이 설치되어있어야 프로젝트를 시작해줄 수 있다. 설치되어 있지 않다면 설치해주자 설치관련한 포스팅은 conda, mysql 설치 글을 게시되어있다.


2. project에 필요한 package 설치

우리는 가상환경에서 프로젝트를 시작할 것이다. 가상환경을 쓰는 이유는 개발 환경을 관리하기 위해서이다. 우리의 local환경에 모든 개발 관련 프로그램을 설치한다면 해당 프로젝트를 공유할 때 필요없는 프로그램도 같이 공유가 되고 환경자체가 무거워진다. 그렇기 때문에 우리는 필요한 프로젝트마다 가상환경을 만들어 해당 작업을 실행할 것이다.

우선 miniconda를 설치하면 터미널에서 base로 시작되는 것을 볼 수 있을 것이다.
터미널을 실행하면 바로 가상환경으로 시작되게 설정이 되어 있기 때문에 base환경에서 시작되는 것을 볼 수 있다.

우리는 프로젝트를 시작하기 위해 새로운 가상환경을 하나 만들어 보자.

  • conda 가상환경 만들기
conda create -n '가상환경이름' python=3.x

python 버전은 3.8 을 해주자 최신버전을 해도되지만 mysql상에서 현재 최신버전과의 오류가 조금 있다. 원활한 실습을 위해 3.8을 해주면 되겠다.
설치 중 y/n 라는 명령을 볼 수 있다. y를 누르고 enter를 누르자.

  • conda 가상환경 활성화(들어가기)
conda activate '가상환경이름'

위의 명령어를 실행하면 가상환경으로 들어간 것을 볼 수 있다.

인제 본격적으로 프로젝트를 실행해보자. 우선 우리는 가상환경에서 필요한 패키지를 설치해줘야한다.
pip를 통해 필요한 패키지를 설치해주자. 그 전에 어떤 패키지가 있는지 확인해보자.

  • pip 패키지 확인
pip freeze

현재 환경에서 설치된 패키지를 확인할 수 있다.

우리는 django와 mysql을 설치해야한다.
mysql은 이미 설치했었다. 하지만 django와 연결하기 위한 패키지인 mysqlclient를 설치하자.

  • 필요한 패키지 설치
pip install django
pip install mysqlclient

두개를 설치하고 pip freeze를 해보면 아까와는 다른 패키지들이 설치되있는 것을 볼 수 있다.


3. 장고 프로젝트 생성

원하는 폴더를 하나 만들고 안에 프로젝트를 생성하면된다. 나는 dev라는 폴더를 만들고 그 안에서 실행하였다.

django-admin startproject westarbucks

westarbucks 는 프로젝트 이름이다.
하면 자동으로 westarbucks라는 폴더가 하나 생성된다.
westarbucks라는 폴더로 들어가 목록을 살펴보면 manage.py라는 파이썬 파일이 생성되는데 장고를 이용한 프로젝트를 하기 위한 파일들이 자동으로 생성된다. 장고의 기능?을 쓸 수 있게 미리 파일들이 만들어져 있다. 이것이 프레임워크이다.

우리는 vsc로 장고 프로젝트 초기세팅을 할 것이다. vim, pycharm 에디터를 사용해도 되지만 장고에 조금 익숙해질 때까지 우리는 vsc로 진행할 것이다. 우리는 터미널환경에서 vsc와 프로젝트 연동을 하기 위해 vsc에서 설정한가지를 해줘야한다.

  • vsc 경로 설정
    visual studio code에서 shift + command + p를 누르면 검색창이 하나 뜬다.

여기서 제일 위에 shell Command: install 'code' command in PATH를 선택하면 경로가 연결된다고 알려준다. 이것은 터미널에 프로젝트 별로 폴더에 들어가 code .이라는 명령어를 실행하면 자동으로 해동 프로젝트 워크스페이스가 vsc에서 자동으로 열린다.

한번 실습해보자. 아까 만들었던 westarbucks 폴더에서 code .을 명령어로 실행해보자.
바로 열릴것이다.


4. 프로젝트 초기 세팅

여기서부터 헷갈린다. 하지만 반복 숙달만이 답.!! 천천히 따라가보자.

1. .gitignore 파일 생성
.gitignore 는 우리가 commit 해선 안될 정보들을 저장하는 파일이다. 예들들면 데이터베이스, 시크릿키 등이 있다. 앞에 .은 파일 앞에 쓰면 숨긴파일을 의미한다. 터미널에서 .파일을 많이 만나봤을 것이다.

https://www.toptal.com/developers/gitignore
다음 사이트를 이용하면 .gitignore파일에는 들어가선 안될 정보를 저장하는 키워드를 입력하면 자동으로 .gitignore파일 정의할 요소를 생성줍니다.
키워드 예시: python, pycharm, vim, visual studio code, Linux, macOs, zsh 다음 키워드를 추가하면 파일에 추가해야할 요소들이 들어있는 창이 뜨는데 그안에 정보를 전부 복사해 .gitignore 에 붙여넣으면 됩니다.

2. settings.py의 ignore할 내용 추가할 파일 생성
settings.py는 장고 프로젝트의 핵심 파일입니다. 중요 정보가 안에 다 들어가있는데 그 중에도 ignore해야 정보는 따로 파일을 만들어 ignore처리 해놔야합니다.
settings.py를 보면 안에 commit해선 안될 파일들이 눈에 뜁니다. SECRET_KEY, DATABASE인데 이 정보를 따로 파일을 만들어 저장하면 됩니다. 이 정보들은 파일 혹은 환경변수로서 관리하는 것이 좋습니다.

저는 my_settings.py라는 파일을 생성해 거기에 저장하겠습니다. 이름은 다른걸로 해도 무방합니다.

3. Mysql 서버 접속
우선 데이터베이스를 따로 빼기전에 따로 뺄 데이터베이스를 생성합니다.

mysql server start

mysql 서버를 시작하겠다는 의미입니다. 하지만 설치할 때 이미 켜둔 상태이면 다음으로 넘어가면 된다.

mysql -u root -p

mysql 서버로 접속하겠다는 뜻입니다.
이후 비밀번호를 입력하면 서버 접속 완료

4. DATABASE 생성

mysql> create database "NAME" character set utf8mb4 collate utf8mb4_general_ci;

"NAME"부분에 따옴표 없이 원하는 데이터베이스 이름을 작성하고 생성하면된다.

5. my_settings.py 파일에 데이터베이스 내용 수정

DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DATABASE 명',
        'USER': 'DB접속 계정명',
        'PASSWORD': 'DB접속용 비밀번호',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

원래 있던 데이터베이스 내용을 다음과 같이 수정해주면 된다.
원래는 sqllite3가 사용된 데이터베이스 내용이 있는데 우리는 mysql로 진행하기에 내용을 수정하겠다.

  • DATABASE 명 수정
    mysql에서 만들었던 데이터베이스 이름을 위에 코드에 저장한다.
  • DB접속 계정명
    root로 수정
  • DB접속용 비밀번호
    mysql 접속했을 때 사용했던 비밀번호를 입력하면된다.
  • HOST
    HOST에 적힌 ip주소는 개인 로컬 환경의 ip주소이다. 그렇기 때문에 localhost로 작성해줘도 무방하다.
 DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'westarbucks',
        'USER': 'root',
        'PASSWORD': 'xxxx',
        'HOST': '127.0.0.1', #localhost
        'PORT': '3306',
    }
}

SECRET_KEY = xxxx

6. setting.py 에 있는 다음 정보들을 my_settings.py에 옮기면 된다.

7. setting.py 파일에 DATABASE, SECRET_KEY import하기

from my_settings import DATABASES, SECRET_KEY

SECRET_KEY = SECRET_KEY
DATABASES = DATABASES

settings.py는 모든 정보를 알고 있어야하기에 보안정보를 다른 파일 옮겨둔 후 import해서 관리한다.

8. 기타 settings.py 설정
기타 필요없는 기능에 대해 주석처리를 해줘야한다. admin, csrf, auth는 필요없는 기능이므로주석 처리를 해주자!!!


다음 urls.py도 다음과 같은 상태로 만들어주자.

9. 장고 초기 세팅 완료 후 오류검증

python manage.py runserver

정상 작동이 되었다는 말이다. 위에 빨간색 줄이 떠서 오류라고 생각할 수 있지만 이것은 마이그레이션해야할 정보가 있다는 뜻이다. 오류는 아니고 마이그레이션을 해주면 된다. 마이그레이션은 다음 django C.R.U.D 글에서 자세하게 다루겠다. 우선은 넘어가자.

여기까지가 장고 프로젝트 초기세팅이다. 뭔가 내용이 엄청많다. 멘붕이 올뻔했지만 천천히 따라하니깐 오류없이 잘 성공했다.
초기세팅이 완료 되었으니 C.R.U.D를 배워보자.

0개의 댓글