본문 바로가기
개발/Python

[Python/Django] 시작하기

by lucidmaj7 2020. 9. 29.
728x90
반응형

[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 = ['*']

로 바꿔준다. 이 설정은 모든 호스트의 접속을 허용하겠다는 의미이다.
바꾸고 다시 접속해보면 로케트 그림이 출력되는 페이지를 볼 수 있다.

728x90
반응형

'개발 > Python' 카테고리의 다른 글

파이썬(python)에서 큐(Queue) 만들기  (0) 2021.01.04
파이썬(Python)에서 스택 구현하기  (0) 2021.01.04

댓글