[Back]-Django 세팅

조성권·2021년 11월 4일
0
post-thumbnail

오늘은 Django를 사용하기 위한 첫단계!!
개발환경 세팅에 대해 적어보고자 한다.

1. 가상환경 세팅

1-1. 가상환경이란?

본인이 원하는 python 환경 구축을 위해 필요한 모듈만 담아놓기 위한 환경설정

1-2. 필요한 이유?

프로젝트를 진행하다보면 여러가지 package를 설치하게 된다.
시간이 지나면 그 버전이 지속하여 바뀌게 되는데 과거의 프로젝트에서 사용하던 버전과 달라져 충돌의 가능성이 존재한다.
이러한 경우를 대비해 각 프로젝트별로 가상환경을 만들어 관리한다.

1-3. pipev 사용하기

우리는 pipenv라는 가상환경을 사용할 것이다.

pip3 install pipenv

이제 가상환경으로 접속한다.

pipenv shell

2. Django 시작하기

2-1. Django 설치

먼저, Django를 설치하도록 하자.

pip3 install django

2-2. Django 프로젝트 파일 생성

django-admin startapp <본인 프로젝트명>
  • django 프로젝트 생성 파일
  • manage.py: app 생성, 서버 실행, DB관련 작업 진행
  • settings.py: 프로젝트 환경 및 구성에 대한 설정 파일. app 생성 후, 이곳에서 등록 진행
  • urls.py: user가 접근하는 웹사이트의 url과 view의 연결 지정
  • init.py: 빈 파일
  • asgi.py: 웹서버, 프레임워크, 앱을 연결해주는 역할 (Asynchronous Server Gateway Interface)
  • wsgi.py: 웹서버와 Django간 통신 역할 (Web Server Gateway Interface)

2-3. 프로젝트 진입

cd <본인 프로젝트명>

서버를 실행하거나 app을 실행하기 위해선 현재 경로에 manage.py가 존재해야한다.

  • 현재 경로 파일/폴더 리스트 확인 방법
ls

2-4. settings.py 설정

1. 접근 가능 호스트 설정 (전체 허용)

ALLOWED_HOSTS = ['*']

2. 한글 표기 세팅

LANGUAGE_CODE = 'ko-kr'

3. 대한민국 시간대로 설정

TIME_ZONE = 'Asia/Seoul'

4. 기본시간대 사용 여부 False 처리 (대한민국 시간대로 앞서 설정했기 때문)

USE_TZ = False

2-5. app 생성

python3 manage.py startapp main

main이라는 이름으로 app을 하나 생성한다. (현재 경로에 manage.py가 있어야 한다)

  • app이란
    django 프로젝트를 이루는 작은 단위.
    프로젝트 내에서 기능별로 개발할 수 있도록 app을 생성해서 진행한다.

2-6. settings.py에 app 등록하기

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'main'
]

2-7. 서버 실행

python3 manage.py runserver #서버 실행
Ctrl + C #서버 종료

실제 실행하면 아래와 같은 빨간 문구가 보일 수 있다.

app에서 모델을 만들면 migration을 만들고 migrate를 통해 migration 내용을 토대로 Table을 생성해 DB에 저장한다.
위 오류는 migrate를 하지않아 DB에 연동되지 않아 발생하는 메시지이다.

아직 모델을 만들지 않았지만 장고에서 기본적으로 등록된 어플리케이션의 모델들이 생성되었기 때문에 발생한다.

migration 해주도록 하자.

python3 manage.py migrate

위 명령어 실행 후, 다시 실행하면 해당 문구가 뜨지 않을 것이다.

profile
천천히, 완벽히 배워나가고자 하는 웹 서비스 엔지니어

0개의 댓글