django-web on GCE

Page content

개요

  • django-web을 GCE에 설치 및 배포를 간단하게 진행하도록 한다.

사전준비

  • Google Cloud Platform 회원가입은 미리 진행했고, GCE 인스턴스를 생성할 줄 아는 상태임을 전제로 한다.
  • Miniconda 설치가 끝난 상황임을 가정한다.
  • Miniconda 설치
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
  • 설치 후, 새로 설치한 미니콘다를 초기화합니다. 다음 명령은 bash 및 zsh 셸을 초기화
~/miniconda3/bin/conda init bash
~/miniconda3/bin/conda init zsh

django on GCE

  • GCE Shell에서 django를 설치한다.
pip install django
  • django의 버전을 확인한다.
django-admin --version
5.0.4
  • project 명령어를 입력한다.
django-admin startproject mysite
  • 서버를 실행해본다.
    • 경로를 mysite에 이동 시킨 후 아래 명령어를 실행한다.
$ python manage.py makemigrations
$ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK
$ python manage.py runserver
...

April 18, 2024 - 05:13:47
Django version 5.0.4, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Untitled

settings.py 수정

  • mysite > mysite 폴더 내에 있는 settings.py 를 열고 아래와 같이 수정한다.
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = ['34.133.127.43'] # External IP Address

Test

  • 다시 아래와 같이 재 실행을 해본다.
python manage.py runserver 0.0.0.0:8000

Untitled

코드 업데이트

views.py 파일

  • mysite > mysite 폴더에서 views.py 를 작성한다.
# -*- coding:utf-8 -*-

from django.http import HttpResponse

def main(request):
    return HttpResponse("안녕하세요, pyburger 입니다.")

urls.py 파일

from django.contrib import admin
from django.urls import path
from .views import main # views.py에서 main 함수 가져오기

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", main) # 공백과 main 함수 연결
]

Test

  • 다시 아래와 같이 재 실행을 해본다.
python manage.py runserver 0.0.0.0:8000

Untitled