티스토리 뷰

🐍/DRF

[PythonAnywhere] 장고 rest API 배포하기

사용자 eungding 2020. 9. 11. 09:27
728x90
반응형

[DRF] get 요청받는 API 만들기 (2) 에서 만든 API를 배포해보겠습니다..!


pythonanywhere 에 들어가서 Beginner account를 만들어줍니다 (무료 ♥️)

 

 

(Beginner 계정으로 배포한 건 3개월만 접속가능합니다)

 

 

Deploying an existing Django project on PythonAnywhere  문서를 따라해봅시다-!! 

 

[1] Uploading your code to PythonAnywhere

 

계정만들고 로그인하면 이 화면이 나오는데요

여기서 Console 탭을 누르고 bash를 눌러주세요

 

 

그러면 이런 bash console이 뜨게 됩니다. 

 

 

git clone https://github.com/eunjin3786/onion_family_api

 

깃에 올린 내 프로젝트를 클론해주세요 

 

[2] Create a virtualenv and install Django and any other requirements

 

아래 명령어로 가상환경을 만들어줍니다.

가상환경이름은 저는 onion_family_env로 해줬어요 (onion_family가 플젝이름이여서,,)

virtualenv --python=python3.7 onion_family_env

 

아래 명령어로 가상환경에 진입해주세요

source onion_family_env/bin/activate

 

 

그리고 가상환경에 필요한 패키지를 설치해줍니다. 

pip install djangorestframework

 

pip freeze 명령어 이용해서 requirements.txt (사용하는 패키지 목록 다 적혀있는 파일) 만들었다면 

아래 명령어로 패키지들을 모두 설치해줄 수 있다고 하네요

pip install -r requirements.txt

 

저는 설치해야하는 패키지가 하나밖에 없는데 여러개 있으면 유용하겠네요,,!! 

 

[3] Database setup

 

장고 프로젝트 디렉토리로 이동합니다. 

cd onion_family_api

 

데이터베이스 setup (또는 sync) 해줍니다.

python manage.py migrate

 

[4] Setting up your Web app and WSGI file

 

이제 웹 탭에 가서 

Add a new web app을 눌러줍니다. 

 

 

무료 계정이여서 custom domain은 못쓴다고 나오는데 (그래도 감사..)

확인하고 Next를 눌러주세요~

 

 

그다음에 파이썬 프레임웤 물어보는데 문서에서 선택하라는 거 선택해줄게요

 

그다음에 파이썬 버전 물어보는데 가상환경만들때 설정해준 버전으로 체크해주면 됩니다. 

 

 

이제 이런 화면 나오는데,

 

스크롤을 내려서 Virtualenv 경로를 넣어줍니다.

/home/사용자아이디/아까만든가상환경이름 

이렇게 넣어주면 되요-!!

 

 

 

그 다음에 Code Section으로 가서 

wsgi 링크를 눌러주세요

 

 

그럼 이런 화면이 나와요-!!

 

 

다 지우고 문서에 있는 코드를 복붙해주세요-!!

 

# +++++++++++ DJANGO +++++++++++
# To use your own Django app use code like this:
import os
import sys

# assuming your Django settings file is at '/home/myusername/mysite/mysite/settings.py'
path = '/home/myusername/mysite'
if path not in sys.path:
    sys.path.insert(0, path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

## Uncomment the lines below depending on your Django version
###### then, for Django >=1.5:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
###### or, for older Django <=1.4
#import django.core.handlers.wsgi
#application = django.core.handlers.wsgi.WSGIHandler()

 

그리고

myusername -> 자신의 아이디 

mysite -> 자신의 플젝 이름 

으로 바꿔주세요

 

 

불필요한 주석을 지우고 Save를 눌러줍니다. 

 

 

 

다시 웹탭에 돌아와서 reload 버튼을 해줍니다. 

 

 

 

 

 

https://사용자아이디.pythonanywhere.com/admin/  이 주소로 admin 홈페이지가 들어가지면 성공입니다 🎉

 

 

이 주소 (eunjin3786.pythonanywhere.com/question/all/) 도
잘들어가집니다..!

 

 

 

저기서 json 링크를 누르면 
이 url로 타고 들어가지고 json만 나오네요,,

 

 

admin에 접속해서 DB에 데이터 추가해봐도 

잘 나옵니다.. >_____<

 

 

 

CSS 이슈

 

원래 admin 페이지가 이렇게 나와야하는데, CSS가 안먹었죠,, 😓

 

 

[PythonAnywhere] 장고 admin 페이지 CSS가 안먹을때 를 봐주세요-!!

 

 

재배포

git에 새로운 커밋을 하고

콘솔을 열어줍니다.

가상환경 진입해주고

프로젝트로 이동해서 git pull 받고

웹 탭에 가서 refresh 버튼 누르면 됩니다. 

 

(참고: [PythonAnywhere] 장고 admin 페이지 CSS가 안먹을때 여기에서 재배포 내용 더 자세히 적어뒀습니다++

 

 

Reference

Deploying an existing Django project on PythonAnywhere

 

Deploying an existing Django project on PythonAnywhere | PythonAnywhere help

 

help.pythonanywhere.com

 

itinerant.tistory.com/163

 

[Django] Pythonanywhere에 배포하기

[Python] Pythonanywhere에 배포하기 완성된 개인 프로젝트(어플리케이션)을 배포(호스팅)하는 방법은 aws, heroku 등등... 다양하며, 그 중 pythonanywhere를 통해 배포하는 방법이다. 😉 들어가기 전에... * Git

itinerant.tistory.com

 

book.coalastudy.com/python-django/week-6/stage-4

 

Stage 4 - 배포/재배포 방법

 

book.coalastudy.com

 

728x90
반응형
댓글
댓글쓰기 폼