Django는 Python으로 웹 프로그래밍을 하기 위한 기능을 제공하는 웹 프레임워크이다. 웹 프레임워크는 웹 애플리케이션이 실행할 때 필요한 쿠키 및 세션 처리, 로그인 처리, DB 처리와 같은 기능을 개발자에게 제공하여 웹 애플리케이션에 필요한 기본적인 기능을 직접 개발하지 않아도 사용할 수 있도록 돕는다. 따라서 개발자는 웹 애플리케이션의 개발 기간을 단축시키고 안정적인 웹 애플리케이션을 개발할 수 있다.
Django를 사용할 때 가장 큰 장점은 보안 기능을 제공한다는 점과 오랜 시간 사용되며 잘 다듬어진 웹 프레임워크라는 점이다. Django는 SQL 인젝션이나 XSS, CSRF와 같은 보안 공격을 방어하는 기능을 사용할 수 있어 개발자가 보안을 위한 코드를 직접 작성할 필요는 없다. 또한 오랫동안 오류 수정과 새로운 기능 추가로 웹 프로그래밍을 위한 대부분의 기능이 준비되어 있어 “바퀴를 새로 발명하지 말라”라는 말을 충실히 따를 수 있다.
Django를 설치하기 위해서 먼저 Python이 설치되어 있어야 한다. Python은 Python 공식 사이트에서 다운로드 받거나 아나콘다를 사용하여 설치한다. 다음 Django 패키지를 사용할 가상환경을 생성 및 활성화 한 후 Django 설치를 진행한다.
Django 프로젝트를 진행할 디렉토리에서 가상환경을 생성 및 활성화 → django 루트 디렉토리에서 진행
sleepyowl ~/Study/django_projects
pipenv --python 3.12
pipenv shell
(django_projects) sleepyowl ~/Study/django_projects
pip를 사용해 Django 설치
pip install django
Collecting django
Using cached Django-5.0.6-py3-none-any.whl.metadata (4.1 kB)
Collecting asgiref<4,>=3.7.0 (from django)
Using cached asgiref-3.8.1-py3-none-any.whl.metadata (9.3 kB)
Collecting sqlparse>=0.3.1 (from django)
Using cached sqlparse-0.5.0-py3-none-any.whl.metadata (3.9 kB)
Using cached Django-5.0.6-py3-none-any.whl (8.2 MB)
Using cached asgiref-3.8.1-py3-none-any.whl (23 kB)
Using cached sqlparse-0.5.0-py3-none-any.whl (43 kB)
Installing collected packages: sqlparse, asgiref, django
Successfully installed asgiref-3.8.1 django-5.0.6 sqlparse-0.5.0
Django의 프로젝트는 쉽게 말해 하나의 웹 사이트를 의미한다. 이 프로젝트 안에 웹 사이트에서 동작할 기능이나 애플리케이션을 개발하여 웹 사이트를 구성한다.
루트 디렉토리 생성
Django 프로젝트를 진행할 디렉토리를 루트 디렉토리 하위에 생성 및 이동
mkdir test_site
cd test_site
프로젝트 디렉토리에서 django 프로젝트 생성
django-admin startproject config .
생성된 프로젝트 구조 확인
tree
.
├── config
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
Django 디렉토리에는 manage.py라는 파일이 있다. 이 파일을 살펴보면 아래와 같은 간단한 코드로 작성되어 있다.
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
이 파일을 python manage.py runserver 명령으로 실행하면 runserver가 execute_from_command_line함수의 인자로 전달되고 execute_from_command_line을 실행한다. 이 함수의 자세한 동작과정은 아래 링크에서 설명하고 있다.
https://velog.io/@kitoram/python-manage.py-runserver는-어떻게-동작하는가1
개발 서버 구동
python manage.py runserver
개발 서버 접속
VSCode에 Django 프로젝트 설정하는 것은 간단하다. VSCode로 프로젝트 디렉토리를 연 다음에 python 인터프리터를 생성한 가상 환경의 python을 설정하면 된다.
VScode로 django 프로젝트 열기
Python 인터프리터 변경


테스트
