Django 개발 환경 설정

2022. 11. 7. 16:15·라이브러리 & 프레임워크/Django

Django란?

웹서비스를 쉽고 빠르게 개발할 수 있는 툴을 제공하는 파이썬 프레임워크입니다.

프레임워크 : 개발하면서 자주 사용하고 반복적으로 사용하는 도구를 모은 라이브러리의 집합

가상환경

가상환경이란?

자신이 원하는 Python 환경을 구축하기 위해 필요한 모듈만 담아놓기 위한 환경 설정입니다.

가상환경은 왜 필요한가?

우리는 프로젝트를 개발하면서 여러가지 패키지들을 설치하게 됩니다.

시간이 지나면서 패키지의 버전이 바뀌게 되는데, 예전 프로젝트에서 사용하던 버전과 달라져 충돌이 일어날 수 있습니다. 

그렇기 때문에 프로젝트 별로 가상환경을 만들어 관리합니다.

 

가상환경에는 여러 종류가 있는데, 그 중에서도 우리는 pipenv 라는 가상환경을 사용하려고 합니다.

pipenv 설치

(Windows) $ pip install pipenv

(Mac) $ pip3 install pipenv

pip : 파이썬 패키지 라이브러리들을 관리해주는 시스템
pip 를 활용하여 여러가지 패키지들을 설치할 수 있습니다.

가상환경 생성 및 접속

$ pipenv shell

가상환경에 접속하고, 없다면 가상환경을 생성하고 접속합니다.

 

pipenv shell 명령어를 입력해 실행된 결과는 다음과 같습니다.

 

Warning: the environment variable LANG is not set! 경고 메시지가 보이네요. 이건 어떻게 해결할 수 있을까요?

친절하게 바로 아랫줄 메시지에서 .profile 파일의 내용을 수정하라고 쓰여져 있네요.

locale 설정 방법

- bash_profile 파일 편집 모드로 접근 : $ vi ~./bash_profile

- bash_profile 파일 수정 : $ ~./bash_profile 에 export LANG="kr_KR.UTF-8" 입력 후 저장

- bash_profile 다시 적용 : $ source ~./bash_profile

Django 시작

Django 설치

(Windows) $ pip install django

(Mac) $ pip3 install django

프로젝트 파일 생성

$ django-admin startproject demo_project

demo_project 라는 이름의 프로젝트 파일을 생성합니다. 프로젝트 파일과 동일한 이름의 폴더도 함께 생성됩니다.

만약 프로젝트 이름의 폴더 없이 프로젝트 파일만 생성하고 싶다면 django-admin startproject [프로젝트 이름] . 을 사용하면 됩니다.

Django 프로젝트를 생성하면 만들어지는 다양한 파일들

- manage.py : app 생성, 서버 실행, 데이터베이스에 관한 작업을 하는 파일

- settings.py : 프로젝트의 환경 및 구성에 대한 설정이 있는 파일. app 생성 후 이곳에서 등록하고, static file, database 설정을 이곳에서 할 수 있습니다.

- urls.py : 유저가 접근하는 웹사이트의 url과 view의 연결을 지정해줍니다.

(참고)

- __init__.py : 빈 파일

- asgi.py : 웹서버, 프레임워크, 앱을 연결해주는 역할(Asynchronous Server Gateway Interface)

- wsgi.py : 웹서버와 Django 간의 통신 역할(Web Server Gateway Interface)

프로젝트 안으로 이동

$ cd demo_project

💡 서버를 실행하거나 app을 생성하기 위해서는 터미널에서 현재 경로에 manage.py가 반드시 있어야 합니다.

settings.py 설정

1. ALLOWED_HOSTS = ['*']

프로젝트에 접근 가능한 호스트를  설정하는 부분입니다. * 를 입력해 모든 사용자가 이용할 수 있도록 설정합니다.

 

다음으로 settings.py의 Internationalization 부분 설정을 해 줄 겁니다.

언어, 시간, 디버깅 등을 설정할 수 있는 부분입니다.

2. LANGUAGE_CODE = 'ko-kr'

한글 표기를 위해 ko-kr 로 수정해줍니다.

3. TIME_ZONE = 'Asia/Seoul'

대한민국 시간대로 설정해주기 위해 Asia/Seoul로 수정해줍니다.

4. USE_TZ = 'False'

우리는 대한민국 시간대로 설정했으므로, 기본시간대 사용에 대한 여부는 False 로 수정해줍니다.

 

app 생성

1. $ python manage.py startapp main

main 이라는 이름의 app을 생성합니다. 현재 경로에 반드시 manage.py가 있어야 합니다.

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

 

2. 프로젝트 파일에 있는 settings.py 에서 app 등록하기

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

프로젝트 파일에 있는 settings.py 에 INSTALLED_APPS Attribute 가 있습니다.

우리가 방금 만든 main app 을 여기에 추가해줘야 해당 app 을 인식합니다.

서버 실행

서버 실행: $ python manage.py runserver

서버 종료: Ctrl + C

 

서버를 한 번 실행해봅시다. 이때에도 반드시 현재 경로에 manage.py 가 있어야 합니다.

 

서버 실행 중에 다음과 같은 오류가 발생했네요.

해당 오류는 migrate 를 하지 않아 데이터베이스에 연동되지 않아 발생한 경고 메세지입니다.

아직 모델을 만들지 않았지만, Django에서 기본적으로 등록된 어플리케이션의 모델들이 생성되어 있기 때문에 뜨는 메세지입니다.

$ python manage.py migrate 를 입력하면 오류 메세지가 뜨지 않습니다.

'라이브러리 & 프레임워크 > Django' 카테고리의 다른 글

데이터베이스 설치  (0) 2022.11.07
URLconf - URL 정의  (0) 2022.11.07
'라이브러리 & 프레임워크/Django' 카테고리의 다른 글
  • 데이터베이스 설치
  • URLconf - URL 정의
rondeveloper
rondeveloper
  • rondeveloper
    Ron's learning record
    rondeveloper
  • 전체
    오늘
    어제
    • 분류 전체보기 (99)
      • k8s (1)
      • AWS (1)
      • 리눅스 (3)
      • Docker (8)
      • 라이브러리 & 프레임워크 (14)
        • React (2)
        • NestJS (8)
        • Spring (0)
        • Django (3)
        • FastAPI (1)
      • 웹 (2)
        • Nginx (1)
      • 프로그래밍 언어 (29)
        • HTML (0)
        • CSS (0)
        • JavaScript (21)
        • Python (3)
        • Node.js (0)
        • TypeScript (4)
        • Java (1)
      • Today I learned (9)
      • 알고리즘 (9)
        • 백준 (0)
        • 프로그래머스 (8)
        • 개념 (1)
      • 티끌모아 태산 (5)
        • 하루에 영단어 하나씩 (5)
        • 독서 (0)
      • 시행착오 (3)
      • 데이터베이스 (2)
        • MySQL (0)
      • 컴퓨터 과학 (8)
        • 네트워크 (2)
        • 운영체제 (0)
        • 데이터베이스 (2)
        • 자료구조 (4)
      • 포트폴리오 (4)
        • JJINCAFE IN SEOUL (4)
        • CODEUNICORN (0)
      • 회고 (0)
      • CICD (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    django
    mysql
    스택
    Python
    코딩테스트
    IP 주소
    typeorm
    javascript
    typescript
    nestjs
    조인
    쿠버네티스
    FastAPI
    도커
    생활코딩
    모듈
    iterable
    Til
    Kubectl
    네트워크
    Docker
    Kubernetes
    레벨2
    컨테이너
    redis
    배열
    프로그래머스
    리눅스
    자바스크립트
    기초
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
rondeveloper
Django 개발 환경 설정
상단으로

티스토리툴바