[Python/Django] 시작하기
0. 개발환경
이 포스트에서 소개하는 Django 프로젝트 시작하기는 다음 환경에서 진행됩니다.
- CentOS7
- MariaDB 5.5
- python 3.7
- python3-venv
MariaDB
Mariadb는 mariadb-server와 mysql-devel이 설치 되어 있어야 한다. 다음명령어를 통해 설치 가능하다.
yum install -y mariadb-server mysql-devel
mariadb가 설치가 완료되면 간단히 데이터베이스를 하나 만들고, 계정 설정을 해준다.
1. 프로젝트 폴더 만들기
Django 프로젝트를 진행할 폴더를 적절한 위치에 만든다.
mkdir hello_django
cd hello_django
2. 가상 환경 만들기
Python프로젝트간 패키지 의존성에 영향을 받지 않게 하기위해 1에서 생성한 폴더 안에서 가상환경을 만들어 진행한다. 다음 명령어는 env라는 가상환경을 만드는 명령어이다.
python3 -m venv env
완료되면 env라는 폴더가 하나 생성된 것을 볼 수 있다. 다음 명령어를 실행하여 가상환경의 환경변수를 불러온다.
source env/bin/activate
3. Django 패키지 설치 & mysqlclient 설치
이제 가상환경에서 pip를 통해 django 를 설치해준다.
python -m pip install django
mariadb를 연결할 것이므로 mysqlclient도 설치해준다.
pip install mysqlclient
4. Django 프로젝트 생성
다음 명령어를 통해 Django프로젝트를 생성한다.
django-admin startproject hellodjango
hellodjango라는 폴더가 생성되며 폴더 내용은 다음과 같다.
(env) [root@localhost hellodjango]# tree
.
├── hellodjango
│ ├── asgi.py
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
1 directory, 6 files
5. DB설정 변경
Django는 기본적으로 SQLITE를 지원하고 있다. 당연히 mariadb(Mysql)도 지원한다. mariadb를 사용해 볼 것 이기 때문에 settings.py를 수정해 줘야한다.
settings.py 파일 내용중 Database를 정의한 부분이 다음과 같이 존재한다.
# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
이 부분을 mariadb설정으로 다음과 같이 바꿔준다.
# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'myweb',
'USER': [DB계정을 넣어준다.],
'PASSWORD': [DB계정 비밀번호를 넣어준다..]
#'HOST': 'db-address', # 별도로 정하지 않으면 기본. localhost
#'PORT': 'port-number' # 별도로 정하지 않으면 기본포트
}
}
6. migrate 실행
Django는 ORM을 지원하므로 기본적으로 sqlite에 맞춰진 DB스키마를 설정한 mysql로 변경해야한다. 이때 migrate명령을 제공한다.
python3 manage.py migrate
7. 서버 실행
python3 manage.py runserver 0:8000
을 실행하고 웹브라우저로 8000번 포트로 접속해보자.
하지만 다음과 같은 에러가 출력됨을 볼 수 있다.
DisallowedHost at /
Invalid HTTP_HOST header: '192.168.111.148:8000'. You may need to add '192.168.111.148' to ALLOWED_HOSTS.
allowed host 헤더 설정을 하지 않아서 생기는 문제이므로 settings.py에서
ALLOWED_HOSTS = []
이부분을
ALLOWED_HOSTS = ['*']
로 바꿔준다. 이 설정은 모든 호스트의 접속을 허용하겠다는 의미이다.
바꾸고 다시 접속해보면 로케트 그림이 출력되는 페이지를 볼 수 있다.
'개발 > Python' 카테고리의 다른 글
파이썬(python)에서 큐(Queue) 만들기 (0) | 2021.01.04 |
---|---|
파이썬(Python)에서 스택 구현하기 (0) | 2021.01.04 |
댓글