Django 사용

이승주·2024년 8월 5일
  1. Django 설치
    설치 전에 장고란 무엇인가 간단히 살펴보겠습니다.

Django(/dʒæŋɡoʊ/ jang-goh/쟁고/장고)는 파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크(web application framework)입니다. 쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소로 이루어진 웹 프레임워크입니다.

웹사이트를 구축할 때, 비슷한 유형의 요소들이 항상 필요합니다. 회원가입, 로그인, 로그아웃과 같이 사용자 인증을 다루는 방법이나 웹사이트의 관리자 패널, 폼, 파일 업로드와 같은 것들이 있습니다.

그래서 많은 사람들이 바로 사용할 수 있는 구성요소들을 갖춘 여러 프레임워크를 만들습니다. 장고도 그 중 하나입니다.

비유를 하자면, 편지(request, 요청)가 도착했는지 확인해주는 메일박스(port, 포트)가 있고 이 것은 웹서버가 해주는 일입니다. 웹 서버는 받은 편지를 읽고 웹 페이지와 함께 답장을 준니다. 그런데 무언가를 주고 싶을 때는 그 안에 내용이 있어야 하는데, 장고는 그 특정 콘텐츠를 만들 수 있는 역할을 합니다.

아래 명령어로 장고를 설치합니다.

pip install django
Django 프로젝트
이번장에서는 Django 기본 프로젝트를 생성하고, 생성한 프로젝트로 서버를 실행한 후 브라우저를 통해 접속하는 과정을 알아보겠습니다. Django는 node.js의 express 모듈처럼 간단한 명령어로 기본 프로젝트를 생성할 수 있으며 관리자 기능까지 제공합니다.

manage.py는 사이트 관리를 도와주는 유틸리티입니다.

settings.py는 웹사이트 설정이 있는 파일입니다.

urls.py파일은 urlresolver가 사용하는 패턴 목록을 포함하고 있습니다.

가. Django 프로젝트 생성
프로젝트를 생성하기 위해 wsl에 접속하여 프로젝트를 생성할 디렉토리로 이동합니다. 본 문서에서는 /mnt/d/django 아래에 생성하겠습니다. /mnt/d/django 디렉토리에서 아래와 같이 명령어를 입력합니다.

mkdir /mnt/d/django
cd /mnt/d/django
django-admin startproject mysite
그러면 mysite라는 디렉토리가 하나 생성되고, 디렉토리 내부에는 manage.py 파일과 함께 프로젝트이름과 동일한 디렉토리가 하나 더 생성되어 있는것을 확인할 수 있습니다. 아래와 같은 디렉토리와 파일이 생성됩니다.

mysite
├───manage.py
└───mysite
settings.py
urls.py
wsgi.py
init.py
settings.py 파일을 열어 한국시간과 한글로 설정을 변경합니다. 기본은 UTC와 영어(en_us)로 되어 있습니다.

timezone 설정 : TIME_ZONE = 'Asia/Seoul'
언어설정 : LANGUAGE_CODE = 'ko'

Database 설정 확인 : 기본적으로 sqlite DB를 사용하는데 DB명 등을 변경할 수 있습니다.

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}

나. 데이터베이스 생성
데이터베이스를 생성하기 위해서 콘솔 창에서 아래 코드를 실행합니다. 위에서 생성한 /mnt/d/django/mysite 디렉토리에서

python3 manage.py migrate 명령어를 실행합니다. 데이터베이스와 함께 테이블들을 생성합니다.

/mnt/d/django/mysite$ python3 manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK

다. Django 웹서버 실행
이제 /mnt/d/django/mysite디렉토리에서 아래 명령어를 입력하여 웹서버를 실행합니다.

python3 manage.py runserver

/mnt/d/django/mysite$ python3 manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
February 09, 2022 - 21:25:47
Django version 4.0.2, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

라. 브라우저로 접속 테스트
브라우저를 열고 주소창에 http://127.0.0.1:8000 을 입력합니다.

profile
개발자 공부

0개의 댓글