# Django/Python

### 1. 개요

***

> Django는 높은 수준의 Python 웹 프레임워크로 안전하고 유지 관리가 쉬운 웹사이트를 빠르게 개발할 수 있습니다. 숙련된 개발자들이 제작하여 웹 개발의 번거로움을 상당 부분 해결해 주므로 다시 개발할 필요 없이 앱 제작에만 집중할 수 있습니다. 오픈소스로 비용이 발생하지 않습니다.

AppPaaS는python2와 python3을 모두 지원하며 프레임워크의 세부 버전에서 선택할 수 있습니다.

### 2.  서비스 환경설정

***

<figure><img src="https://1281168261-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F69bJtwnfn269Dqzr8gks%2Fuploads%2FTZNAZ5jYtPXiLNcOJbZN%2Fimage.png?alt=media&#x26;token=b1a982bb-97dc-41cf-be8d-ce3f65e49c19" alt=""><figcaption></figcaption></figure>

* **내부 포트**\
  서비스가 배포된 후 리슨되는 포트를 의미합니다.\
  Django 생성 시 8000 포트가 사용되며 해당 포트를 변경했을 경우 변경한 값을 입력해 주어야 합니다. \
  AppPaaS 베타에서는 해당 포트를 기반으로 TCP 헬스체크를 합니다.<br>
* **외부 포트, 외부 포트 공개 여부**\
  서비스를 퍼블릭으로 오픈할지 여부를 결정하는 설정입니다.\
  기본으로 443, 오픈으로 설정되어 있으며 오픈 설정 시 외부 도메인이 할당되어 \
  https\://{할당된 주소}를 통해 외부에서 접근할 수 있습니다. 비공개로 설정할 경우 \
  외부에서 접근이 불가능하며 내부 도메인 주소를 통한 서비스 간 통신만 지원됩니다.
* **자동 배포 설정**\
  자동 배포를 설정하면 리포지터리의 선택한 브랜치에 변경이 생길 경우\
  변경에 대한 훅을 받아 자동으로 빌드 및 배포가 진행됩니다.

### 3. 고급 환경 설정

***

* **설치 명령어**\
  디폴트로 `pip install -r requirements.txt`가 수행됩니다.\
  수정이 필요할 경우 해당 값을 오버라이드할 수 있습니다.<br>
* **환경 변수**\
  Key/Value 형태로 입력되며 입력된 값은 컨테이너 OS의 환경 변수로 주입됩니다.\
  주입된 환경 변수는 os.environ을 통해 접근하여 사용할 수 있습니다.

{% hint style="info" %}
환경 변수의 경우 아래의 값을 입력하신 후 직접 추가 설정이 가능합니다.\
MODULE : **{wsgi.py directory path}** \
STATIC\_MAP\_URL : **{static file url path}**\
STATIC\_FILE\_PATH : **{static file path}**
{% endhint %}

{% hint style="danger" %}
고급 설정을 활용하여 동일 언어의 다른 프레임워크를 배포하는 것은 권장하지 않습니다.
{% endhint %}
