[Django] Django의 설치와 시작
작성:    
업데이트:
카테고리: Django
태그: BE Framework, Django
Django 설치
가상환경 생성
- venv 사용
- 전역환경에서 설치하지 않도록 주의한다.
사전 준비
venv 폴더로 사용할 폴더를 만들고 해당 경로에서 git bash를 켠다.
# venv 폴더 이름 venv로 설정해서 생성
$ python -m venv venv
# venv 폴더 활성화 : 이후 (venv) 확인하기
$ source venv/Scripts/activate
# venv 폴더인지 재확인 : pip 개수가 적으면 venv 성공
$ pip list
# + 일반적으로 협업 시 pip 상태를 freeze
$ pip freeze > requirements.txt
freeze해서 만든 pip requirements.txt를 이용해서 pip를 다운받는 코드는 아래와 같다.
$ pip install -r requirements.txt
Django 설치
3.2버전을 다운 받는다. 최신 버전은 Django 4.0 버전이지만, LTS가 길지 않아서 2024~2025년 경까지 LTS를 보장받는 3.2.12 버전이 가장 적합
$ pip install django==3.2.12
Project 생성
**django-admin startproject <프로젝트명> .** 의 명령으로 프로젝트 생성프로젝트명>
$ django-admin startproject firstpjt .
주의사항 ⭐
- 말미에
.
을 붙여야 한다. 안 붙이면 top level에 폴더 단위를 만들고 수평하게 만든다. 작업이 번거로워진다. - 프로젝트 이름
- Python이나 Django에서 사용중인 키워드 금지
- django, text, class, django-test 등
- -(하이픈) 사용 불가
프로젝트 개발 외
- .gitignore, README.md 파일을 만들어준다.
- .gitignore에는 venv를 등록해서 venv는 commit&push되지 않도록 한다.
서버 활성화
Django 서버 활성화
python manage.py runserver
비활성화는 ctrl + c 단축키로 종료할 수 있다.
프로젝트 구조
__init__.py 🚫
- Python에게 이 디렉토리를 하나의 Python 패키지로 다루도록 지시
asgi.py
- Asynchronous Server Gateway Interface
- django 애플리케이션이 비동기식 웹 서버와 연결 및 소통하는 것 도움
settings.py ⭐
- 애플리케이션의 모든 설정 포함
urls.py ⭐
- 사이트의 url과 적절한 views의 연결을 지정
- HTTP request를 처음으로 받는 파일
wsgi.py
- Web Server Gateway Interface
- Django App이 웹서버와 연결 및 소통하는 것을 도움
manage.py
- server 켤 때 사용했던 파일
- Django pjt와 다양한 방법으로 상호작용하는 커맨드라인 유틸리티
$python manage.py <command> [options]
ex) $python manage.py runserver
Application 생성
- Application명은 일반적으로 복수형으로 하는 것을 권장
$ python manage.py startapp articles
- articles는 어플리케이션의 이름 예시(필수 아님!!)
- articles 폴더가 firstpjt와 동등한 위치에 생겼음을 알 수 있다.
- articles 폴더는 빈 폴더가 아니라 여러 파일들이 있다.
Application 구조
__init__.py 🚫
Python에게 이 디렉토리를 하나의 Python 패키지로 다루도록 지시
admin.py
관리자용 페이지 설정
apps.py 🚫
- 앱의 정보가 작성된 곳
- 수정하지 않을 것
models.py ⭐
앱에서 사용하는 Model을 정의
tests.py
프로젝트의 테스트 코드를 작성
views.py ⭐
view 함수들이 정의되는 곳
Project와 Application 재정리
Project
- Project는 App의 집합(collection of apps)
- 프로젝트에는 여러 앱이 포함
Application
- 실제 요청을 처리, 페이지를 보여주는 등의 역할 담당
- 일반적으로 하나의 역할 및 기능 단위로 작성
- 여러 프로젝트에 있을 수 있음
App 등록
- 프로젝트와 App은 같은 위치에 위치한다.
- 때문에 프로젝트는 App의 존재를 모른다.
- 프로젝트 소속 App의 정보를 프로젝트에 등록해주어야 한다!
settings.py
# settings.py
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
기본적으로 django가 구동되기 위한 기본 app들이 있다.
아래처럼 app을 기본 app 위쪽에 추가해준다.
# settings.py
# Application definition
INSTALLED_APPS = [
'articles',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
주의📢 App은 반드시 생성 후 등록한다! INSTALLED_APPS에 먼저 등록하고 생성하려면 생성 안 된다.
django 권장 app 등록 form
INSTALLED_APPS = [
# Local apps
'articles',
# Third party apps
'???',
# Django apps
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
advanced한 내용에 대비하기 위해 위와 같이 구분해서 작성한다.
전체 과정 정리
- 가상환경 생성 및 활성화
- django 설치
- 프로젝트 생성
- 서버 실행 후 로켓 확인
- 앱 생성
- 앱 등록
댓글남기기