Computer Science/BackEnd

장고 WSGI를 이용하여 배포하기 | 장고 공식 문서 번역

토마토. 2022. 11. 25. 18:53

How to deploy Django | Django documentation | Django (djangoproject.com)

 

Django

The web framework for perfectionists with deadlines.

docs.djangoproject.com

 

How to deploy
Django with WSGI
  • WSGI는 장고의 주요한 배포 인터페이스이다. 
  • Django의 startproject 명령에서 WSGI configuration을 많은 부분 디폴트 값으로 설정해놓는다. 
  • 만약 필요하다면 프로젝트 상황에 맞게 수정하면 된다. 
The application object
  • WSGI로 배포할 때 핵심은 application callable이라는 개념이다. 
  • application callable은 웹 서버가 파이썬 코드와 소통하기 위해 사용하는 것으로, 
  • 주로 파이썬 모듈에서 application이라는 객체로 서버에서 접근할 수 있게 제공된다. 
  • startproject 명령어는 project_name/wsgi.py라는 파일을 생성한다. 
"""
WSGI config for renderDjango project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/
"""

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'renderDjango.settings')

application = get_wsgi_application()
  • 이 wsgi.py 파일 안에 application callable 객체가 존재한다. 
  • 이는 개발할 때 사용하는 장고 서버와 WSGI 배포 과정에서 사용된다. 
  • WSGI 서버는 application callable까지의 path을 포함하고 있다
  • 장고 서버 runserver 명령어는 WSGI_APPLICATION 설정값으로부터 application을 읽어온다.
Configuring the settings module
  • DJANGO_SETTINGS_MODULE 환경 변수가 설정 모듈과 연결한다. 
Applying WSGI middleware
  • WSGI 미들웨어를 만들어 application object를 감쌀 수 있다.
  • 예를 들면 다음과 같은 식이다. 
from helloworld.wsgi import HelloWorldApplication
application = HelloWorldApplication(application)