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\라고 대답합니다. 각 프롬프트에 대해 업그레이드를 중지하려면 플래그를 제거하십시오.
- sudo apt-get update && sudo apt-get -y upgrade
grub-pc
를 구성하라는 메시지가 표시되면 ENTER
를 눌러 기본값을 수락하거나 원하는 대로 구성할 수 있습니다.
Django Software Foundation에서는 Python 3를 사용하도록 권장하므로 모든 것이 업데이트되면 다음 명령을 사용하여 Python 3을 설치할 수 있습니다.
- sudo apt-get install python3
Python 3의 성공적인 설치를 확인하려면 python3 명령으로 버전 확인을 실행하십시오.
- python3 -V
결과 출력은 다음과 유사합니다.
Outputpython 3.5.2
이제 Python 3가 설치되었으므로 Python의 패키지 저장소인 PyPi에서 패키지를 설치하려면 pip도 필요합니다.
- sudo apt-get install -y python3-pip
pip가 성공적으로 설치되었는지 확인하려면 다음 명령을 실행합니다.
- pip3 -V
다음과 유사한 출력이 표시되어야 합니다.
Outputpip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
이제 pip를 설치했으므로 Python 환경에 필요한 다른 패키지를 빠르게 설치할 수 있습니다.
2단계 — virtualenv 설치
virtualenv는 포함된 개발 공간에 소프트웨어 및 Python 패키지를 설치할 수 있는 가상 환경으로, 설치된 소프트웨어 및 패키지를 시스템의 나머지 전역 환경에서 격리합니다. 이 편리한 격리는 충돌하는 패키지 또는 소프트웨어가 서로 상호 작용하는 것을 방지합니다.
virtualenv를 설치하려면 아래와 같이 pip3 명령을 사용합니다.
- pip3 install virtualenv
설치가 완료되면 버전 확인을 실행하여 설치가 성공적으로 완료되었는지 확인합니다.
- virtualenv --version
다음 출력 또는 이와 유사한 출력이 표시되어야 합니다.
Outputvirtualenv 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
라는 디렉터리 또는 원하는 다른 이름을 만듭니다. 그런 다음 디렉토리로 이동합니다.
- mkdir django-apps
- cd django-apps
django-apps
디렉토리 내부에서 가상 환경을 생성합니다. env
라고 부르겠습니다.
- virtualenv env
이제 다음 명령을 사용하여 가상 환경을 활성화합니다.
- . env/bin/activate
접두사가 (env)
로 변경되면 활성화된 것을 알 수 있습니다. 이는 현재 있는 디렉터리에 따라 다음과 유사하게 표시됩니다.
-
환경 내에서 pip를 사용하여 Django 패키지를 설치합니다. Django를 설치하면 Django 애플리케이션을 만들고 실행할 수 있습니다. Django에 대해 자세히 알아보려면 Django 개발에 대한 튜토리얼 시리즈를 읽어보세요.
- pip install django
설치가 완료되면 버전 확인을 실행하여 Django 설치를 확인합니다.
- django-admin --version
다음과 같은 결과가 출력됩니다.
Output2.2.12
Django가 서버에 설치되면 테스트 프로젝트를 생성하여 모든 것이 올바르게 작동하는지 확인할 수 있습니다.
4단계 — Django 테스트 프로젝트 만들기
Django 설치를 테스트하기 위해 스켈레톤 웹 애플리케이션을 생성합니다.
방화벽 규칙 설정
먼저 해당되는 경우 서버의 방화벽에서 사용할 포트를 열어야 합니다. UFW를 사용하는 경우(초기 서버 설정 가이드에 자세히 설명되어 있음) 다음 명령으로 포트를 열 수 있습니다.
- sudo ufw allow 8000
DigitalOcean 방화벽을 사용하는 경우 인바운드 규칙에서 HTTP
를 선택할 수 있습니다. 소개 자습서의 인바운드 규칙 섹션을 읽으면 DigitalOcean 방화벽 및 규칙 생성에 대한 자세한 내용을 읽을 수 있습니다.
프로젝트 시작
이제 Python에서 관리 작업을 위한 명령줄 유틸리티인 django-admin
을 사용하여 애플리케이션을 생성할 수 있습니다. 그런 다음 startproject
명령을 사용하여 테스트 웹 사이트의 프로젝트 디렉토리 구조를 만들 수 있습니다.
django-apps
디렉토리에서 다음 명령을 실행합니다.
- django-admin startproject testsite
참고: django-admin startproject
명령을 실행하면 프로젝트 디렉토리와 프로젝트 패키지 모두
명령이 실행된 디렉터리에 프로젝트를 만듭니다. 선택적
매개변수가 제공되면 Django는 제공된 대상 디렉토리를 프로젝트 디렉토리로 사용하고 manage.py
및 그 안에 프로젝트 패키지.
이제 방금 생성된 프로젝트 파일을 확인할 수 있습니다. testsite
디렉토리로 이동한 다음 해당 디렉토리의 내용을 나열하여 어떤 파일이 생성되었는지 확인합니다.
- cd testsite
- ls
Outputmanage.py testsite
이 디렉터리에 manage.py
라는 파일과 testsite
라는 폴더가 있음을 보여주는 출력이 표시됩니다. manage.py
파일은 django-admin
과 유사하며 프로젝트 패키지를 sys.path
에 저장합니다. 이것은 또한 프로젝트의 settings.py
파일을 가리키도록 DJANGO_SETTINGS_MODULE
환경 변수를 설정합니다.
다음과 같이 less
명령을 실행하여 터미널에서 manage.py
스크립트를 볼 수 있습니다.
- less manage.py
스크립트 읽기를 마쳤으면 q
를 눌러 파일 보기를 종료합니다.
이제 testsite
디렉토리로 이동하여 생성된 다른 파일을 봅니다.
- cd testsite/
그런 다음 다음 명령을 실행하여 디렉터리의 내용을 나열합니다.
- ls
네 개의 파일이 표시됩니다.
Output__init__.py settings.py urls.py wsgi.py
각 파일이 무엇인지 살펴보겠습니다.
__init__.py
는 Python 프로젝트의 진입점 역할을 합니다.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
를 사용하는 경우 다음 명령을 실행하기만 하면 됩니다.
- 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
가 있는 디렉토리로 다시 이동해야 합니다.
- cd ~/django-apps/testsite/
이제 your-server-ip 텍스트를 서버의 IP로 대체하여 다음 명령을 실행합니다.
- python manage.py runserver your-server-ip:8000
마지막으로 아래 링크로 이동하여 스켈레톤 웹사이트가 어떻게 생겼는지 확인하고 강조 표시된 텍스트를 서버의 실제 IP로 다시 바꿀 수 있습니다.
http://your-server-ip:8000/
페이지가 로드되면 다음과 유사한 웹페이지를 받게 됩니다.
이는 Django가 제대로 설치되었고 테스트 프로젝트가 올바르게 작동함을 확인합니다.
앱 테스트를 마치면 CTRL
+ C
를 눌러 runserver
명령을 중지할 수 있습니다. 그러면 프로그래밍 환경으로 돌아갑니다.
Python 환경을 떠날 준비가 되면 deactivate
명령을 실행할 수 있습니다.
- deactivate
프로그래밍 환경을 비활성화하면 터미널 명령 프롬프트로 돌아갑니다.
결론
이 자습서에서는 Ubuntu APT 리포지토리를 통해 사용 가능한 최신 버전의 Python 3으로 성공적으로 업그레이드했습니다. pip 3, virtualenv
및 django
도 설치했습니다.
이제 Django 웹 애플리케이션 구축을 시작하는 데 필요한 도구가 있습니다.