웹사이트 검색

Ubuntu 16.04에서 Django를 설치하고 개발 환경을 설정하는 방법


소개

Django는 MTV(모델 템플릿 보기) 소프트웨어 아키텍처 패턴을 준수하는 Python으로 작성된 무료 오픈 소스 웹 프레임워크입니다. MTV 패턴은 특정 URL에 대한 Django의 기능이고 템플릿은 Django가 HTML을 동적으로 생성하는 방법입니다.

Django의 핵심 원칙은 확장성, 재사용성 및 신속한 개발입니다. 또한 프레임워크 수준의 일관성과 느슨한 결합으로 알려져 있어 개별 구성 요소가 서로 독립적일 수 있습니다. Don't repeat yourself(DRY 프로그래밍)는 Django 원칙의 필수적인 부분입니다.

이 튜토리얼에서는 Django 개발 환경을 설정합니다. Django로 웹 애플리케이션을 개발하는 데 필요한 도구를 제공하기 위해 Python 3, pip 3, Django 및 virtualenv를 설치합니다.

전제 조건

Debian 또는 Ubuntu Linux 서버에 설정된 sudo 권한이 있는 루트가 아닌 사용자 계정. Ubuntu 16.04 자습서에 대한 초기 서버 설정을 따르고 완료하여 이러한 전제 조건을 달성할 수 있습니다.

1단계 — Python 및 pip 설치

Python을 설치하려면 먼저 로컬 APT 저장소를 업데이트해야 합니다. 터미널 창에서 다음 명령을 입력합니다. -y 플래그는 업그레이드 프로세스 중에 프롬프트에 "yes\라고 대답합니다. 각 프롬프트에 대해 업그레이드를 중지하려면 플래그를 제거하십시오.

  1. sudo apt-get update && sudo apt-get -y upgrade

grub-pc를 구성하라는 메시지가 표시되면 ENTER를 눌러 기본값을 수락하거나 원하는 대로 구성할 수 있습니다.

Django Software Foundation에서는 Python 3를 사용하도록 권장하므로 모든 것이 업데이트되면 다음 명령을 사용하여 Python 3을 설치할 수 있습니다.

  1. sudo apt-get install python3

Python 3의 성공적인 설치를 확인하려면 python3 명령으로 버전 확인을 실행하십시오.

  1. python3 -V

결과 출력은 다음과 유사합니다.

Output
python 3.5.2

이제 Python 3가 설치되었으므로 Python의 패키지 저장소인 PyPi에서 패키지를 설치하려면 pip도 필요합니다.

  1. sudo apt-get install -y python3-pip

pip가 성공적으로 설치되었는지 확인하려면 다음 명령을 실행합니다.

  1. pip3 -V

다음과 유사한 출력이 표시되어야 합니다.

Output
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

이제 pip를 설치했으므로 Python 환경에 필요한 다른 패키지를 빠르게 설치할 수 있습니다.

2단계 — virtualenv 설치

virtualenv는 포함된 개발 공간에 소프트웨어 및 Python 패키지를 설치할 수 있는 가상 환경으로, 설치된 소프트웨어 및 패키지를 시스템의 나머지 전역 환경에서 격리합니다. 이 편리한 격리는 충돌하는 패키지 또는 소프트웨어가 서로 상호 작용하는 것을 방지합니다.

virtualenv를 설치하려면 아래와 같이 pip3 명령을 사용합니다.

  1. pip3 install virtualenv

설치가 완료되면 버전 확인을 실행하여 설치가 성공적으로 완료되었는지 확인합니다.

  1. virtualenv --version

다음 출력 또는 이와 유사한 출력이 표시되어야 합니다.

Output
virtualenv 20.0.20 from /home/sammy/.local/lib/python3.5/site-packages/virtualenv/__init__.py

virtualenv를 성공적으로 설치했습니다.

이 시점에서 Django 웹 애플리케이션 및 관련 소프트웨어 종속성을 시스템의 다른 Python 패키지 또는 프로젝트에서 분리할 수 있습니다.

3단계 — Django 설치

Django를 설치하는 방법에는 세 가지가 있습니다. 이 자습서에서는 pip 설치 방법을 사용하지만 참조할 수 있도록 사용 가능한 모든 옵션을 살펴보겠습니다.

  • 옵션 1: virtualenv 내에 Django를 설치합니다.\n이는 Django 버전을 서버의 전역 환경에서 격리해야 하는 경우에 이상적입니다.\n
  • 옵션 2: 소스에서 Django를 설치합니다.\n최신 소프트웨어를 원하거나 Ubuntu APT 리포지토리가 제공하는 것보다 새로운 것을 원하는 경우 소스에서 직접 설치할 수 있습니다. 이 설치 방법을 선택하려면 소프트웨어 버전을 최신 상태로 유지하려면 지속적인 주의와 유지 관리가 필요합니다.\n
  • 옵션 3: pip를 사용하여 Django를 전역적으로 설치합니다.\nDjango를 전역적으로 설치할 것이기 때문에 우리가 함께 할 옵션은 pip 3입니다.\n

가상 환경에서 pip를 사용하여 Django를 설치합니다. 프로그래밍 환경의 설정 및 활용에 대한 추가 지침 및 정보는 가상 환경 설정에 대한 이 자습서를 확인하십시오.

서버의 홈 디렉토리에 있는 동안 Django 애플리케이션을 포함할 디렉토리를 만들어야 합니다. 다음 명령을 실행하여 django-apps라는 디렉터리 또는 원하는 다른 이름을 만듭니다. 그런 다음 디렉토리로 이동합니다.

  1. mkdir django-apps
  2. cd django-apps

django-apps 디렉토리 내부에서 가상 환경을 생성합니다. env라고 부르겠습니다.

  1. virtualenv env

이제 다음 명령을 사용하여 가상 환경을 활성화합니다.

  1. . env/bin/activate

접두사가 (env)로 변경되면 활성화된 것을 알 수 있습니다. 이는 현재 있는 디렉터리에 따라 다음과 유사하게 표시됩니다.

환경 내에서 pip를 사용하여 Django 패키지를 설치합니다. Django를 설치하면 Django 애플리케이션을 만들고 실행할 수 있습니다. Django에 대해 자세히 알아보려면 Django 개발에 대한 튜토리얼 시리즈를 읽어보세요.

  1. pip install django

설치가 완료되면 버전 확인을 실행하여 Django 설치를 확인합니다.

  1. django-admin --version

다음과 같은 결과가 출력됩니다.

Output
2.2.12

Django가 서버에 설치되면 테스트 프로젝트를 생성하여 모든 것이 올바르게 작동하는지 확인할 수 있습니다.

4단계 — Django 테스트 프로젝트 만들기

Django 설치를 테스트하기 위해 스켈레톤 웹 애플리케이션을 생성합니다.

방화벽 규칙 설정

먼저 해당되는 경우 서버의 방화벽에서 사용할 포트를 열어야 합니다. UFW를 사용하는 경우(초기 서버 설정 가이드에 자세히 설명되어 있음) 다음 명령으로 포트를 열 수 있습니다.

  1. sudo ufw allow 8000

DigitalOcean 방화벽을 사용하는 경우 인바운드 규칙에서 HTTP를 선택할 수 있습니다. 소개 자습서의 인바운드 규칙 섹션을 읽으면 DigitalOcean 방화벽 및 규칙 생성에 대한 자세한 내용을 읽을 수 있습니다.

프로젝트 시작

이제 Python에서 관리 작업을 위한 명령줄 유틸리티인 django-admin을 사용하여 애플리케이션을 생성할 수 있습니다. 그런 다음 startproject 명령을 사용하여 테스트 웹 사이트의 프로젝트 디렉토리 구조를 만들 수 있습니다.

django-apps 디렉토리에서 다음 명령을 실행합니다.

  1. django-admin startproject testsite

참고: django-admin startproject 명령을 실행하면 프로젝트 디렉토리와 프로젝트 패키지 모두 명령이 실행된 디렉터리에 프로젝트를 만듭니다. 선택적 매개변수가 제공되면 Django는 제공된 대상 디렉토리를 프로젝트 디렉토리로 사용하고 manage.py 및 그 안에 프로젝트 패키지.

이제 방금 생성된 프로젝트 파일을 확인할 수 있습니다. testsite 디렉토리로 이동한 다음 해당 디렉토리의 내용을 나열하여 어떤 파일이 생성되었는지 확인합니다.

  1. cd testsite
  1. ls
Output
manage.py testsite

이 디렉터리에 manage.py라는 파일과 testsite라는 폴더가 있음을 보여주는 출력이 표시됩니다. manage.py 파일은 django-admin과 유사하며 프로젝트 패키지를 sys.path에 저장합니다. 이것은 또한 프로젝트의 settings.py 파일을 가리키도록 DJANGO_SETTINGS_MODULE 환경 변수를 설정합니다.

다음과 같이 less 명령을 실행하여 터미널에서 manage.py 스크립트를 볼 수 있습니다.

  1. less manage.py

스크립트 읽기를 마쳤으면 q를 눌러 파일 보기를 종료합니다.

이제 testsite 디렉토리로 이동하여 생성된 다른 파일을 봅니다.

  1. cd testsite/

그런 다음 다음 명령을 실행하여 디렉터리의 내용을 나열합니다.

  1. ls

네 개의 파일이 표시됩니다.

Output
__init__.py settings.py urls.py wsgi.py

각 파일이 무엇인지 살펴보겠습니다.

  • __init__.pyPython 프로젝트의 진입점 역할을 합니다.
  • settings.py는 Django 설치 구성을 설명하고 Django에서 사용 가능한 설정을 알립니다.
  • urls.py에는 URL을 로 라우팅하고 매핑하는 urlpatterns 목록이 포함되어 있습니다.
  • wsgi.py에는 웹 서버 게이트웨이 인터페이스에 대한 구성이 포함되어 있습니다. WSGI(웹 서버 게이트웨이 인터페이스)는 웹 서버 및 애플리케이션 배포를 위한 Python 플랫폼 표준입니다.

참고: 기본 파일이 생성되었지만 배포 요구 사항에 맞게 언제든지 wsgi.py를 조정할 수 있습니다.

웹사이트 시작 및 보기

이제 runserver 명령을 실행하여 서버를 시작하고 지정된 호스트 및 포트에서 웹 사이트를 볼 수 있습니다.

~/test_django_app/testsite/testsite/settings.py 파일의 ALLOWED_HOSTS 목록에 서버 IP 주소를 추가해야 합니다. 코드>.

Django 문서에 명시된 바와 같이 ALLOWED_HOSTS 변수에는 "이 Django 사이트가 제공할 수 있는 호스트/도메인 이름을 나타내는 문자열 목록이 포함되어 있습니다. 이것은 HTTP 호스트 헤더 공격을 방지하기 위한 보안 조치입니다. 안전해 보이는 많은 웹 서버 구성에서도 가능합니다.”

선호하는 텍스트 편집기를 사용하여 IP 주소를 추가할 수 있습니다. 예를 들어 nano를 사용하는 경우 다음 명령을 실행하기만 하면 됩니다.

  1. nano ~/django-apps/testsite/testsite/settings.py

명령을 실행하면 문서의 허용된 호스트 섹션으로 이동하여 작은따옴표 또는 큰따옴표 안에 있는 대괄호 안에 서버의 IP 주소를 추가할 수 있습니다.

"""
Django settings for testsite project.

Generated by 'django-admin startproject' using Django 2.0.
...
"""
...
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

# Edit the line below with your server IP address
ALLOWED_HOSTS = ['your-server-ip']
...

CTRL + x 키를 누른 상태에서 y 키를 눌러 변경 사항을 저장하고 nano를 종료할 수 있습니다.

이 작업이 완료되면 manage.py가 있는 디렉토리로 다시 이동해야 합니다.

  1. cd ~/django-apps/testsite/

이제 your-server-ip 텍스트를 서버의 IP로 대체하여 다음 명령을 실행합니다.

  1. python manage.py runserver your-server-ip:8000

마지막으로 아래 링크로 이동하여 스켈레톤 웹사이트가 어떻게 생겼는지 확인하고 강조 표시된 텍스트를 서버의 실제 IP로 다시 바꿀 수 있습니다.

http://your-server-ip:8000/

페이지가 로드되면 다음과 유사한 웹페이지를 받게 됩니다.

이는 Django가 제대로 설치되었고 테스트 프로젝트가 올바르게 작동함을 확인합니다.

앱 테스트를 마치면 CTRL + C를 눌러 runserver 명령을 중지할 수 있습니다. 그러면 프로그래밍 환경으로 돌아갑니다.

Python 환경을 떠날 준비가 되면 deactivate 명령을 실행할 수 있습니다.

  1. deactivate

프로그래밍 환경을 비활성화하면 터미널 명령 프롬프트로 돌아갑니다.

결론

이 자습서에서는 Ubuntu APT 리포지토리를 통해 사용 가능한 최신 버전의 Python 3으로 성공적으로 업그레이드했습니다. pip 3, virtualenvdjango도 설치했습니다.

이제 Django 웹 애플리케이션 구축을 시작하는 데 필요한 도구가 있습니다.