django-web on GCE
Page content
개요
- django-web을 GCE에 설치 및 배포를 간단하게 진행하도록 한다.
사전준비
- Google Cloud Platform 회원가입은 미리 진행했고, GCE 인스턴스를 생성할 줄 아는 상태임을 전제로 한다.
- Miniconda 설치가 끝난 상황임을 가정한다.
- Miniconda Linux 설치 : https://docs.anaconda.com/free/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.
- 에러가 발생한다. 에러가 발생하는 이유는 django는 관련 설정을 별도로 해줘야 한다.
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
코드 업데이트
- 소스코드는 다음 링크에서 차용하였다.
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