Django | 장고 프로젝트 초기 세팅(Miniconda & Mysql)

Sua·2021년 1월 22일
0

Django

목록 보기
2/23
post-thumbnail
post-custom-banner

1. 가상환경 구축

장고 프로젝트를 시작하기 전에 Miniconda로 가상환경 구축을 해볼 것이다. Ubuntu 20.04.1 버전 기준이다.

1-1. 미니콘다 설치하기

미니콘다 공식 홈페이지에서 Linux installers 설치 스크립트를 다운받는다.
https://docs.conda.io/en/latest/miniconda.html

터미널에서 다운로드 받은 위치로 이동한다. 그리고 아래 명령어로 다운로드 받은 파일의 권한을 변경한다.

chmod +x Miniconda3-latest-Linux-x86_64.sh

설치 스크립트를 실행한다

./Miniconda3-latest-Linux-x86_64.sh

cd miniconda3/bin 폴더로 이동하여 zsh에 적용해주기 위하여 다음 명령어들을 입력한다.

./conda init zsh
source ~/.zshrc

설치가 잘 되었는지 확인한다.

conda list

설치가 잘 되었으면 아래와 같은 목록이 뜬다.

1-2. 가상환경 생성하기

미니콘다 설치 후 starbucks라는 가상환경을 생성한다.

conda create -n starbucks python=3.9

가상환경을 활성화하기 전에 내 위치가 어디인지 확인해보자. (/home/sua/miniconda3/bin/python)

which python

가상환경을 활성화한다.

conda activate mysite

가상환경을 활성화하고 내 위치가 어디인지 다시 한 번 확인해보자. (home/sua/miniconda3/envs/starbucks/bin/python)

which python

가상환경에 장고를 설치한다.

pip install django

장고가 설치되었는지 확인한다.

python3 -m django --version

[참고] 미니콘다 명령어

conda 가상환경 목록을 보는 명령어

conda env list

conda 가상환경 만들기

#파이썬3 버전의 환경만들기 
conda create -n "가상환경이름" python=3.7

conda 내가 만든 가상환경으로 활성화하기

conda activate "가상환경이름"

conda 실행된 가상환경 비활성화하기

conda deactivate

conda 가상환경 삭제하기

conda env remove -n "가상환경이름"

conda 가상환경 익스포트하기(배포용 yaml만들기)

conda env export> "가상환경이름.yaml"

conda 익스포트한 가상환경 임포트하기

conda env create -f "가상환경이름.yaml" 

1-3. 프로젝트 생성하기

가상환경 위에서 starbucks라는 프로젝트 생성해보자.

django-admin startproject starbucks

프로젝트가 생성되었는지 확인해본다.

ls
cd starbucks
tree

프로젝트가 생성되면 현재 디렉토리 내에 starbucks라는 디렉토리가 만들어지고 그 안에 아래와 같은 파일들이 생성된다.

각각의 파일들이 어떤 것을 의미하는지 살펴보자.

  • manage.py : Django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티이다.
  • mysite/ : mysite/ 디렉토리 내부에는 프로젝트를 위한 실제 Python 패키지들이 저장됩니다. 이 디렉토리 내의 이름을 이용하여, (mysite.urls 와 같은 식으로) 프로젝트의 어디서나 Python 패키지들을 임포트할 수 있다.
  • mysite/__init__.py: : Python으로 하여금 이 디렉토리를 패키지처럼 다루라고 알려주는 용도의 단순한 빈 파일이다.
  • mysite/settings.py: : 현재 Django 프로젝트의 환경 및 구성을 저장한다. Django settings에서 환경 설정이 어떻게 동작하는지 확인할 수 있다
  • mysite/urls.py : 현재 Django project 의 URL 선언을 저장한다. Django 로 작성된 사이트의 《목차》 라고 할 수 있다.
  • mysite/asgi.py :
  • mysite/wsgi.py : 현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점이다.

https://docs.djangoproject.com/ko/3.1/intro/tutorial01/ 각각이 무엇을 의미하는지 정리하기

1-4. 개발 서버 시작하기

아직 프로젝트에 아무것도 넣지 않았지만 서버를 구동할 수 있다. 다음 명령어로 Django 개발 서버를 시작해보자.

python manage.py runserver

이제 브라우저 주소창에 localhost:8000 또는 127.0.0.1:8000이라고 입력하면 접속 가능하다.

위와 같은 페이지가 뜨면 성공이다. 서버를 중지하고 싶으면 터미널에서 Ctrl + C를 누르면 된다.


2. Mysql 연동하기

미니콘다 가상환경 구축을 완료하고 프로젝트를 만들었다면 데이터베이스와 연동을 해보자. Django에서는 기본 데이터베이스로 sqlite3가 제공되는데 Mysql로 데이터베이스를 변경할 것이다. Ubuntu 20.04.1 버전 기준이다.

(생성된 가상환경의 이름은 starbucks, 프로젝트 이름도 starbucks이다.)

2-1. Mysql 설치하기

아래 사이트를 참고하여 Mysql 설치를 진행한다.
우분투에서 Mysql 설치, 접속

2-2. mysqlclient 설치하기

Mysql이 설치되었으면 프로젝트 가상환경에서 mysqlclient를 깔아준다.
(myclient는 이후에 MySQL server에 접속하기 위한 package이다.)

sudo apt-get install libmysqlclient-dev
python3 -m pip install mysqlclient # 또는 pip install mysqlclient

2-3. Database 생성

먼저 mysql 서버가 켜져있는지 확인한다.

service mysql status

mysql 서버를 켜고 끄는 명령어는 다음과 같다.

service mysql start
service mysql stop

mysql 서버에 들어가서 데이터베이스를 생성한다.(이름 뒤에 붙은 인자는 모든 문자 형태를 MySQL에 저장할 수 있게 해주는 명령어이다.)

mysql -u root -p
mysql> create database starbucks character set utf8mb4 collate utf8mb4_general_ci;

2-4. starbucks/settings.py 설정

모든 사용자의 IP 허용한다.

ALLOWED_HOSTS = ['*']

사용하지 않는 요소(admin, csrf, auth)에 대해 주석처리를 한다.

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',
]

Database와 연동한다.

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

2-5. starbucks/urls.py 수정

urls.py 파일도 까먹지 말고 수정해야 한다. 원래 있던 내용을 아래과 같이 수정하자.

from django.urls import path

urlpatterns = [
]

2-6. 첫 번째 migrate으로 연동 체크

migrate해서 Mysql Server와 연동이 잘 되었는지 확인해보자.

(여기에서 migrate 명령을 실행하는 이유는 Django와 함께 기본적으로 설치된 앱들이 필요로 하는 테이블을 생성해야 하기 때문이다. 기본 앱들은 setting.pyINSTALLED_APPS에서 확인 가능하다.)

python manage.py migrate

Mysql에서 테이블이 만들어졌는지 확인해보자.

mysql -u root -p
mysql> use starbucks;
mysql> show tables;

아래와 같이 Mysql 데이터베이스에 테이블이 생성되었다.

profile
Leave your comfort zone
post-custom-banner

0개의 댓글