ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Django] Pythonanywhere 사용하여 웹 호스팅하기
    Web Programming/Django 2021. 6. 19. 13:00
    반응형

    [Django] Pythonanywhere 사용하여 웹 호스팅 하기

    최근에 간단한 웹 페이지를 만들어 웹 호스팅 한 적이 있다. 난 지금까지 웹 페이지만 만들어봤지 호스팅 해보는 것은 처음이라 호스팅 과정을 기록하고자 한다. 무료 호스팅 사이트를 찾아보다가 Pythonanywhere가 간단해 보여서 사용하기로 결정했다. 참고한 사이트는 https://tutorial-extensions.djangogirls.org/ko/manual_pythonanywhere_deploy 이곳이다.

     

    1. 먼저 settings.py에서 다음과 같은 설정을 한다.
    DEBUG = False
    
    ALLOWED_HOSTS = [
        '<pythonanywhere-id>.pythonanywhere.com'
    ]

    ALLOWED_HOSTS에 pythonanywhere에 가입한 '아이디.pythonanywhere.com'을 추가해 준다.

     

    1. Dashboard에서 ''$Bash' '클릭하면 다음과 같이 리눅스 창이 뜬다.

     

    1. 아래와 같이 입력하여 깃허브에서 코드를 가져온다.
    git clone https://github.com/<github-id>/my-first-blog.git <pythonanywhere-id>.pythonanywhere.com

     

    1. 가상 환경을 생성하여 필요한 라이브러리(django, pandas ..)를 설치한다.
    mkvirtualenv --python=python3.6 <your-pythonanywhere-username>.pythonanywhere.com

    로컬에서 설치할 때보다 시간이 좀 걸린다.

     

    1. 아래와 같이 타이핑하여 정적 파일 모은다. 장고걸즈에 따르면 이 명령을 통해 앱이 모든 정적 파일을 수집해 서버가 찾을 수 있는 장소에 모아둔다고 한다.
    python manage.py collectstatic

     

    1. 이제 Pythonanywhere의 Web으로 돌아가 add new app을 클릭한다.

    next 클릭

    수동 설정(manual configuration)을 클릭한 후 해당 파이선 버전 선택

    next 클릭

     

    1. 가상 환경을 설정하는 부분이다. 자신의 가상 환경 경로에 맞게 입력하면 된다.
    /home/<pythonanywhere-id>/.virtualenvs/<pythonanywhere-id>.pythonanywhere.com

     

    1. 정적 파일을 매핑하는 단계이다.

    URL와 Directory를 다음과 같이 입력한다.

     

    1. WSGI 파일을 설정하는 부분이다. wsgi.py 파일을 클릭한 후 모든 내용을 지우고 아래의 코드를 입력한다. 그리고 수정이라고 태그 한 부분을 자신의 환경에 맞게 수정하면 된다.

    import os
    import sys
    
    path = '/home/<your-pythonanywhere-username>/<your-pythonanywhere-username>.pythonanywhere.com' # 수정
    if path not in sys.path:
        sys.path.append(path)
    
    os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' # 수정
    
    from django.core.wsgi import get_wsgi_application
    application = get_wsgi_application()

     

    1. Reload 버튼을 클릭한 후 자신의 사이트에 접속하면 끝!

    블러 처리를 한 페이지이지만.. 호스팅 성공!

     

    * views.py에서 .csv와 같은 파일을 못 읽는 경우

    웹 호스팅을 한 후 views.py에서 static에 저장한 csv 파일을 읽어오지 못해서 좀 고생했다. 각자 settings.py의 STATIC_ROOT, STATIC_URL 등등 다르겠지만 필자의 경우 상대 경로를 절대 경로를 바꿨더니 csv 파일을 읽어 올 수 있었다.

    반응형

    댓글

Designed by Tistory.