Django(1)

Hyeon Soo·2021년 1월 21일
0

개요

데이터베이스와 서버를 구축하여 백엔드 웹개발을 하기 위해선 가상환경을 설정하는 등의 기반 작업을 해줄 필요가 있다. 이번 포스트는 이를 정리해보고자 한다. OS는 우분투, 언어와 프레임워크는 python과 django, 데이터베이스 관리 프로그램은 mysql을 이용하고자 한다. 이때, 각각의 설치방법은 논하지 않으려 한다.

1. 가상환경 설정

가상환경이란, 자신이 원하는 언어환경을 구축하기 위해 필요한 모듈만을 적용하여 임의로 구축한 배경을 의미한다. 여기서는 미니콘다를 이용하여 가상환경을 구축하고자 한다.

1-1. 미니콘다를 이용한 가상환경 구축 및 활성화

미니콘다의 활성화는 다음의 명령어를 터미널에 입력하는 것으로 할 수 있다.

conda activate

미니콘다가 활셩화 된 상태면, 터미널에 가장 앞에 (base)라고 나타날 것이다. 지금의 상태는 가상환경이 만들어진 상태는 아니다. 이 상태에서 가상환경을 구축하기 위해선

conda create -n 'name' python='version'

을 입력하면 된다. 이때, 작은 따옴표 안의 name과 version은 각각 구축하려 하는 가상환경의 이름과 파이선 언어의 버전을 입력해주면 된다(작은 따옴표는 입력하지 않아야 한다).
가상환경이 성공적으로 설정되었다면, (base)가 설정한 이름으로 바뀌었을 것이다. 이후 기초 상태에서 구축한 가상환경을 활성화하는 방법은 다음의 코드를 입력하는 것이다.

conda activate 'name'

활성화시킨 가상환경을 비활성화시키는 코드는

conda deactivate

마지막으로 구축한 가상환경을 삭제하려 할 경우, 이하의 코드를 입력하면 된다.

conda env remove -n 'name'

1-2. django 설치

가상환경을 활성화 하였다면, 웹 개발에 필요한 요소들을 설치할 필요가 있다. 우선, 프레임워크인 django를 설치하려한다. 가상환경이 활성화된 상태에서

pip install django

를 입력하면 가상환경에 장고가 설치된다. 또한, 장고는 데이터베이스 프로그램으로 sqlite3를 기본으로 내장하고 있는데, mysql을 사용하기 위해서는 연동을 시켜주어야 한다. 이때 연동을 위한 프로그램이 필요한데, mysqlclient라고 한다. 이것을

pip install mysqlclient

로 설치해주면 된다. 이때, 가상환경에 설치된 프로그램을 확인하는 방법은

pip freeze

이다.

2. 폴더 만들기

웹 개발을 진행하기 위한 폴더를 만드는 방법이다. 터미널에서 mkdir 명령어를 이용하여 폴더를 만들고, 경로를 바꿔주면 된다.

3. 프로젝트 생성

웹 개발을 위해 필요한 기본 파일들의 경우, 장고에서 제공한다. 이를 불러오기 위해 폴더에서 우선 명령어 등이 저장된 파일들을 생성할 필요가 있는데, 먼저 부를 것은 프로젝트이다. 이는 장고에 대한 설정을 담은 파이선 패키지인데

django admin startproject '폴더명'

로 불러올 수 있다. 이 중 manage.py와 settings.py가 중요하다. 전자에는 여러 커맨드들이 저장되어 있고, 후자에는 프로젝트의 환경이 작성되어 있다.

4. 앱 생성

다음은 프로젝트에서 작업을 수행할 때 필요한 앱을 부를 필요가 있다. 앱은 무언가를 수행하는 것으로, 프로젝트는 여러개의 앱을 포함한다. 이는

python manage.py startapp 'appname'

로 생성할 수 있다. 이때 models.py는 데이터베이스와 연동되는 파일로, 클래스를 생성하여 데이터베이스에 테이블을 생성하는 것과 연관이 되어있다.

5. 데이터베이스 설정

다음으로는 데이터베이스를 생성하고 연결할 필요가 있다. 우선 해야할 일은 mysql을 여는 것으로, 터미널에

mysql -u root -p

를 입력한 후

create database '데이터베이스이름' character set utf8mb4 collate utf8mb4_general_ci;

를 입력하면, 의도한 이름으로 데이터베이스가 생성된다. 이를 확인하려면 show databases;를 입력하면 된다.

그리고나서 장고의 환경을 mysql로 바꾸어 줄 필요가 있다. mysql를 종료하고, 프로젝트의 settings.py를 열어

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'생성한 앱 이름',
]

앱을 추가해주고,

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '데이터베이스이름',
'USER': 'root',
'PASSWORD': 'mysql비밀번호',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}

로 수정하면 된다.

다음으로는 데이터베이스 테이블을 만드는 일인데, 우선 앱 폴더의 models.py를 열어서

class Tablename(models.Model):
		attribute
        
        class Meta():
        	db_table = 'tablename'

를 입력하면 된다. 이때, 클래스의 첫 글자는 대문자로 작성해야하고, 들여쓰기에 주의해야할 필요가 있다.

이상의 작업을 완료한 이후, manage.py 경로로 돌아와서

python manage.py makemigrations appname

를 실행한다. 이는 데이터베이스에 테이블을 만드는 것에 필요한 파일들을 생성하는 명령어이다. 이 명령어가 실행되었다면,

python manage.py migrate appname

를 입력한다. 그리고 mysql을 들어가 확인해보면, 데이터베이스에 테이블이 생성된 것을 확인할 수 있다.

0개의 댓글