만족

[Django] 장고 세팅 (MYSQL 사용) 본문

[Django] 장고 세팅 (MYSQL 사용)

Backend/Django Satisfaction 2018. 8. 13. 15:42

먼저 파이썬을 설치한다.


https://www.python.org/downloads/windows/


여기에서 본인의 컴퓨터 사양에 맞는 설치파일을 사용하여 파이썬을 설치한다.


본인은 



을 사용하여 설치하였다. (3.6버전)


파이썬은 커맨드라인을 통한 조작이 빈번하기 때문에 환경 변수를 반드시 설정해주는 것이 좋다.



환경변수의 Path부분에서 새로 만들기 버튼을 눌러서


[설치경로]\Programs\Python\Python36\Scripts\와 [설치경로]\Programs\Python\Python36\을 추가한다.


python 설치 시에 지정한 폴더 경로를 [설치경로]에 대입하면 된다.


Window PowerShell로 돌아와서, Django를 설치해야 한다.

pip install django

를 입력하고 엔터한다.


장고설치가 완료되면 이제 프로젝트를 생성할 수 있다.


프로젝트를 생성하기 원하는 경로로 cd를 이용해 이동한다.


만약 바탕화면이라면 cd C:\Users\rndrj\Desktop 를 입력하고 엔터한다.


그리고 django-admin.py startproject [프로젝트이름] 을 입력하고 엔터한다.


만약 django-admin.py를 찾을 수 없다는 오류 메세지가 뜰 경우(No such file or directory) Django설치가 제대로 완료되지 않았다는 뜻이니

다시 설치 단계로 돌아가면 된다.


성공적으로 프로젝트 생성이 완료되었다면, [프로젝트이름]으로 된 폴더 하나가 생겼을 것이다.


[프로젝트이름] 폴더 안에는 이름이 똑같은 [프로젝트이름]폴더 하나와 manage.py가 있는데 [프로젝트이름]폴더로 한번 더 들어가면


settings.py라는 파일을 찾을 수 있다.


프로젝트의 전반적인 설정을 하는 곳이다.


이곳에서 몇 가지 바꾸어야만 한다.


컨트롤+ F를 이용하여 해당 항목을 찾아서 고치면 편하다.



TIME_ZONE = 'Asia/Seoul'


우선 시간대를 서울로 맞춰주어야 한다. 기본값은 영국이다.



LANGUAGE_CODE = 'ko-kr'


관리자 페이지의 언어를 한국어로 설정한다. 기본값은 영어다.



TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]


템플릿 속성에 DIRS부분이 []로 되어있을 것이다.


그 부분만 [os.path.join(BASE_DIR, 'templates')] 로 바꿔준다.



# file upload
MEDIA_URL= '/media/'
MEDIA_ROOT= os.path.join(BASE_DIR, 'meida')


외부 파일 업로드 시에 사용할 경로이다.

반드시 media가 아니어도 상관없다.


위 세줄을 맨 아래에 추가한다.



DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #use mysql (not sqlite)
'NAME': 'dbname',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS': {
'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"'
}
}
}


사용할 데이터베이스를 정의한다.


다음과 같이 작성하고 NAME, USER, PASSWORD를 자신이 mysql설치 시에 정의한 값으로 넣어준다.


NAME의 경우 dbname을 입력하면 된다.


외부의 DB를 이용하고자 할 경우 HOST값을 바꾸어 주면 된다.


이렇게 하면.... 이제 끝일것 같지만...


Django의 기본 사용 DB는 SQLite3이다.


당연히 mysql을 사용하려면 드라이버를 추가적으로 설치해 주어야 한다.


다시 PowerShell로 돌아가서


pip install mysqlclient 를 입력하고 엔터한다.


여기에서 성공하면 참 다행인데... 실패하는 경우도 많은 모양이다.


실패한 경우 mysqlclient를 직접 내려받아 설치해야 한다... (exe파일 아닙니다 ㅎㅎ)


https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 에서 컨트롤+F로 mysql을 찾은 후

파이썬 버전과 아키텍쳐를 체크한 후 다운로드한다. 

(파이썬 3.6버전이고 64비트라면 mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl 을 다운로드하면 된다.


다운로드가 끝났다면 바탕화면으로 가져온 후...


 cd를 이용해 바탕화면으로 이동하고


pip install [파일이름] 을 입력하고 엔터하면 설치가 완료된다.


이제 드라이버까지 준비가 되었으니... settings.py의 설정값을 적용해주면 된다.

[프로젝트이름]으로 이동한 후 (두 개의 똑같은 폴더 중 상위에 있는 폴더로 이동한다)


python manage.py migrate를 입력하고 엔터하면 완료된다.


혹시 오류메세지가 떴다면



DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #use mysql (not sqlite)
'NAME': 'dbname',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS': {
'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"'
}
}
}


이 부분에서 발생했을 확률이 높다. (아까 DB셋팅하던부분)


Access Denied라면 해당 계정의 privilege를 확인하거나 user와 password가 올바르게 입력되었는지를 확인하면 된다.


뭔가 초기설정에 힘이 다 빠져버린 느낌이다...


어쨌든 끝....




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

[Django] 장고너무어렵다  (0) 2018.08.13
[Django] python manage.py runserver 무응답 문제  (0) 2018.08.13


Comments