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 |