Ubuntu 22.04에 Django 설치 및 개발 환경 설정하는 방법

소개

Django는 파이썬으로 작성된 무료 오픈 소스 웹 프레임워크로, 확장성, 재사용성 및 빠른 개발이라는 핵심 원칙을 갖고 있습니다. 또한 프레임워크 수준의 일관성과 느슨한 결합으로 알려져 있어 각 구성 요소가 서로 독립적일 수 있습니다.

이 튜토리얼에서는 우분투 22.04 서버에 개발 목적의 Django 환경을 설정할 것입니다. 라이브 웹사이트의 경우 데이터베이스에 연결하고, 도메인 이름을 설정하고, 보안 계층을 추가하는 등 추가적인 고려 사항이 있습니다. Django를 사용하여 작성하는 동안 도움이 되는 다양한 튜토리얼이 있습니다.Django 태그를 포함하여 지원할 수 있습니다.

필수 조건

이 튜토리얼을 완료하기 위해 다음이 필요합니다:

단계 1 — Django 설치

Django를 설치하는 여러 가지 방법이 있습니다. 가상 환경 내에서 Python 패키지 관리자 pip를 사용하여 설치할 수 있습니다.

서버의 홈 디렉터리에서 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 애플리케이션을 만들고 실행할 수 있습니다.

  1. pip install django

설치가 완료되면 Django 설치를 확인하려면 다음과 같은 버전 확인을 실행합니다:

  1. django-admin --version

다음 또는 유사한 결과가 생성됩니다:

Output
4.0.6

서버에 Django가 설치되었으므로 모든 것이 올바르게 작동하는지 확인하기 위해 테스트 프로젝트를 생성할 수 있습니다. 뼈대 웹 애플리케이션을 만들 것입니다.

단계 2 — 방화벽 설정 조정

초기 서버 설정 자습서를 따랐거나 서버에 방화벽이 실행 중인 경우 서버의 방화벽에서 사용할 포트를 열어야 합니다. UFW 방화벽을 사용하는 경우 다음 명령을 사용하여 포트를 열 수 있습니다:

  1. sudo ufw allow 8000

만약 DigitalOcean 방화벽을 사용하고 있다면 들어오는 규칙에서 HTTP를 선택할 수 있습니다. DigitalOcean 방화벽에 대한 자세한 내용 및 규칙을 만드는 방법에 대해서는 들어오는 규칙을 수정하여 확인할 수 있습니다.

단계 3 — 프로젝트 시작

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

  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에 추가합니다. 또한 이것은 DJANGO_SETTINGS_MODULE 환경 변수를 프로젝트의 settings.py 파일을 가리키도록 설정합니다.

터미널에서 less 명령을 사용하여 manage.py 스크립트를 볼 수 있습니다:

  1. less manage.py

스크립트를 읽는 것이 끝나면 파일 보기를 종료하려면 q를 누르십시오.

이제 다른 파일을 볼 수 있도록 testsite 디렉토리로 이동하십시오:

  1. cd testsite/

그런 다음 다음 명령을 사용하여 디렉토리의 내용을 나열하십시오:

  1. ls

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

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

각 파일에 대해 설명을 읽을 수 있습니다:

  • __init__.py는 Python 프로젝트의 진입점으로 작동합니다.
  • asgi.py는 선택적으로 Asynchronous Server Gateway Interface 또는 ASGI에 배포를 위한 구성을 포함하며 동기식 및 비동기식 앱을 위한 표준을 제공하며 WSGI(아래 참조)의 후속 버전으로 간주됩니다.
  • settings.py는 Django 설치의 구성을 설명하고 Django가 어떤 설정을 사용할 수 있는지 알려줍니다.
  • urls.py는 URL을 해당 views에 라우팅 및 매핑하는 urlpatterns 목록을 포함합니다.
  • wsgi.py는 웹 서버 게이트웨이 인터페이스 또는 WSGI의 구성을 포함하며 동기식 Python 앱에 대한 표준을 제공합니다.

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

단계 4 — Django 구성

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

settings.py 파일에서 ALLOWED_HOSTS 목록에 서버 IP 주소를 추가해야 합니다. 해당 파일은 ~/test_django_app/testsite/testsite/에 있습니다.

Django 문서에 명시된 대로, ALLOWED_HOSTS 변수에는 “이 Django 사이트에서 제공할 수 있는 호스트/도메인 이름을 나타내는 문자열 목록이 포함됩니다. 이는 HTTP Host 헤더 공격을 방지하는 보안 조치이며, 이러한 공격은 보이는 것처럼 안전한 웹 서버 구성에서도 발생할 수 있습니다.”

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

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

한 번 명령을 실행한 후, 문서의 ALLOWED_HOSTS 섹션으로 이동하여 서버의 IP 주소를 단일 또는 이중 따옴표 내부의 대괄호 안에 추가하십시오.

settings.py
"""
Django settings for testsite project.

Generated by 'django-admin startproject' using Django 4.0.
...
"""
...
# 보안 경고: 제품 환경에서 디버그를 켜지 마십시오!
DEBUG = True

# 아래 라인을 자신의 서버 IP 주소로 편집합니다.
ALLOWED_HOSTS = ['your-server-ip']
...

변경 사항을 저장하고 나노를 종료하려면 CTRL + x 키를 누르고 나서 y 키를 누르세요. 그런 다음, 웹 앱에 브라우저를 통해 액세스할 수 있습니다.

마지막으로, Django 관리 인터페이스를 사용할 수 있도록 관리자 사용자를 만듭니다. 이를 수행하려면 createsuperuser 명령을 사용합니다:

  1. python manage.py createsuperuser

사용자 이름, 이메일 주소 및 사용자의 암호를 입력하라는 메시지가 표시됩니다.

단계 5 — Django 웹 앱에 액세스하기

구성이 완료되었으면, 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가 올바르게 설치되었고 테스트 프로젝트가 올바르게 작동하는 것을 확인할 수 있습니다.

관리자 인터페이스에 액세스하려면 URL 끝에 /admin/을 추가하세요:

http://your_server_ip:8000/admin/

이렇게하면 로그인 화면으로 이동합니다:

방금 만든 관리자 사용자 이름과 암호를 입력하면 사이트의 주요 관리자 섹션에 액세스할 수 있습니다:

Django 관리자 인터페이스 작업에 대한 자세한 내용은 다음을 참조하십시오:“Django 관리자 인터페이스를 활성화하고 연결하는 방법.”

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

Python 환경을 종료할 준비가 되면 deactivate 명령을 실행할 수 있습니다:

  1. deactivate

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

결론

이 튜토리얼에서 Django를 성공적으로 설치하고 Django 앱 작업을 시작할 개발 환경을 설정했습니다.

이제 Django 웹 애플리케이션을 구축하기 위해 필요한 기본을 갖추었습니다.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-django-and-set-up-a-development-environment-on-ubuntu-22-04