[Django] 장고, 파이썬 무료 호스팅 (클라우드 타입 - cloudtype)
Django - 장고, 파이썬 무료 호스팅 (클라우드 타입 - cloudtype)
목차
- 클라우드타입(cloudtype) 사용하기
- 파이썬 무료 호스팅 (장고)
- DB 무료 호스팅 (MariaDB)
- DB 연결하기
- 참고사항 : 가상환경 확인 및 생성 명령어
1. 클라우드타입(cloudtype) 사용하기
파이썬 언어를 사용하는 장고 프로젝트를 제한적이지만 무료로 호스팅할 수 있는 국내 사이트가 있어 테스트를 해보았습니다. 보통 파이썬은 AWS나 카페24 같은 곳에서 서버호스팅을 이용하여 일일이 세팅을 해줘야 하는데, 이곳에서는 비교적 편하게 설정할 수 있었습니다.
1) 준비사항
- 신용카드 or 체크카드 : 클라우드타입을 무료 버전이라도 이용하려면 카드등록이 필수로 되어 있어 신용카드 또는 체크카드가 필요합니다.
- github : github를 통해 배포 설정을 하기 때문에 github에 배포할 프로젝트가 저장되어 있어야 합니다.
- 클라우드타입 회원가입 : 클라우드 타입 사용을 위해 아래 링크를 통해 회원가입을 해주도록 합니다.
2. 파이썬 무료 호스팅 (장고)
1) 프로젝트 생성
로그인을 하고 나면 아래와 비슷한 화면이 나타납니다.
- ①번 : + 버튼을 클릭하여 프로젝트를 생성하도록 합니다.
- ②번 : 좌측 하단에 리소스 용량이 보이는데, 여기에서 카드등록을 해주어야 무료로 사용할 수 있는 리소스가 제공됩니다.
2) "내 GitHub 저장소 배포하기" 선택
3) 내 GitHub 저장소에서 배포할 프로젝트 선택
- github 계정을 연결한 후 진행하면 아래와 같은 화면이 나타납니다. 여기에서 배포할 저장소를 선택해 줍니다.
- (cf, github 계정 연결후 install 버튼을 누르는 화면이 한번 나타났던것 같은데 기억이 가물가물하네요)
4) 언어/프레임웍 선택 항목에서 Python Django 선택
- 언어/프레임웍 선택 항목에서 PythonDjango를 선택하게 되면 버전 및 세부사항을 설정할 수 있는 옵션 메뉴가 나타납니다.
5) 장고 버전 설정 후 [더 많은 옵션] 클릭
6) [더 많은 옵션] 설정
- Pre start Command : runserver 전에 실행해야할 명령어를 적어줍니다. 예제에서는 DB 사용시 필요한 명령어 두개를 적어주었습니다.
- Install commmand에는 "pip install -r requirements.txt" 명령어 실행이 디폴트로 되어있습니다. requirements.txt 파일에는 설치해야할 라이브러리 목록이 있는 파일인데 뒤에서 추출방법에 대해 설명하도록 하겠습니다.
7) 배포하기
- 배포하기를 클릭하면 배포가 시작됩니다.
cf) 만약 DB와 연동되어 사용하는 프로젝트라면 아래와 같이 DB설정을 해주어야 합니다.
3. DB 무료 호스팅 (MariaDB)
1) 프로젝트 생성
- 위에서와 같이 + 버튼을 누른후 mariadb를 검색하여 MariaDB를 선택해 줍니다.
2) Root 비밀번호 설정
- root 비밀번호를 설정해 줍니다.
3) 배포하기
- 배포하기 버턴을 클릭하여 배포를 진행합니다.
4. DB 연결하기
1) 프로젝트 홈 화면에서 우측 상단 톱니바퀴 버튼을 클릭합니다.
2) 방화벽 설정
- 스크롤을 내리면 마지막 부분에 방화벽 설정 부분에서 "TCP 외부 접속 허용하기"를 허용합니다.
3) DB 접속 도메인 주소 확인
- 프로젝트 홈화면에서 앞서 설정한 DB호스팅을 클릭하면 [연결] 메뉴에서 외부에서 DB에 접속할 수 있는 도메인 주소를 확인할 수 있습니다.
- ①번 : 호스트명
- ②번 : 포트번호
4) 외부에서 DB 접속하여 사용하기
- HeidiSQL과 같은 DB 접속 프로그램을 통해 DB에 접속하여 데이터베이스에 데이터를 넣어줍니다.
- 호스트명과 포트번호는 위에서 확인한 내용을 참고하시면 됩니다.
5) 장고의 setting.py 파일 수정
- 변경 : DATABASES = "HOST", "PORT" 부분을 위에서 확인한 값으로 변경
- 변경 : ALLOWED_HOSTS = ['*'] or ["localhost", "127.0.0.1", ".cloudtype.app", "0.0.0.0"]
- 추가 : CSRF_TRUSTED_ORIGINS = ['https://*.cloudtype.app']
6) requirements.txt 파일 생성
배포할 장고 프로그램에서 사용하는 라이브러리를 서버에도 설치해야 되기 때문에 requirements.txt 파일에 라이브러리 목록과 버전을 등록해 주어야합니다.
- 추출방법 : pip list --format=freeze > requirements.txt
- cf) pip freeze > requirements.txt 예전에는 이렇게 했는데 현재는 이렇게 하면 다른 정보가 나타납니다.
이때 라이브러리는 최소한으로 설치해야되기 때문에 아나콘다에서 사용하신분은 가상환경에서 다시 환경을 만들어 주어서 실행해 주셔야 합니다.
※ 주의사항 : mariaDB사용시 mysqlclient를 설치해야 되는데 이때 requirements.txt 파일에 버전이 1.4.6 이어야 됩니다. 저의 경우 pc에서 사용하고 있는 2.2.1 버전으로 하게 되면, 클라우드타입에서는 에러가 발생하여 requirements.txt 파일에 mysqlclient==1.4.6 버전으로 수정하여 진행시 정상 진행되었습니다 .
5. 참고사항 : 가상환경 확인 및 생성 명령어
1) 명령어 정리 (아나콘다 사용시)
- conda env list (가상환경 목록 확인)
- conda create -n myenv (가상환경 생성)
- conda activate myenv (가상환경으로 접속)
- conda list
- pip list
- conda install django (가상환경에 장고 설치)
- pip install mysqlclient==1.4.6
- pip install mysqlclient