소개
docker-compose 를 통해 Nginx, uWSGI, Django 를 이용한 웹 서버, 웹 애플리케이션을 구축해보는 아주아주 씸플한 Super simple application을 만들어보겠다.
이번 주말 내내 이 작업을 엄청 했더니 어느정도 쉬운 구조에서는 도가 트였다.
이러한 도커 애플리케이션을 만들 것이다.
그냥 IP:Port에 접속했을 때 인사를 해주는 간단한 Django Application을 웹서버에 올려보자.
프로젝트 구조는 위와 같다. 이번 시간엔 django 디렉토리까지만 다루겠다.
작업 내용
프로젝트 구조에 맞게 디렉토리와 virtual environment를 설정해준다.
django-admin command를 이용해서 django project와 그 속의 app을 생성해준다.
이제 vscode를 열어 내 django project에 대한 settings.py 에서
ALLOWED_HOSTS에 IP 주소들을 이미지처럼 추가해주고,
위에서 만들었던 나의 프로젝트 속 hello라는 app을 INSTALLED_APPS 리스트에 추가해준다.
그리고 프로젝트의 urls.py에서 ''에 대한 라우터를 추가해준다.
이 때 hello 앱의 urls.py 를 include한다.
방금 include 한 hello.urls를 정의해준다. 경로는 hello/urls.py
필요한 대로 프로젝트의 urls.py 에서 복붙해온다.
그리고 자기 자신( 앱이자 패키지)으로 부터 views.py 를 import 해서 그 속의 view function을 사용할 것이므로
from . import views 를 적어준다.
우리 프로젝트 앱의 '' 경로에 hello.urls를 include 시켰는데, hello.urls에서 자신이 라우팅 되는 곳을 기준으로 '' 경로에 say_hello 라는 view function 을 정의한 뒤 이용할 것이다.
결과적으로는 IP:Port 라는 최상위 경로에서 say_hello라는 view function을 이용하겠다는 것이다.
따라서 view function을 적절히 정의해주러가자.
경로는 hello/views.py
간단한 HttpResponse를 client 에게 보내기 위해
django.http의 HttpResponse를 import 해주고
say_hello view function을 정의해준다. 기본 인자는 request에 관하여 하나 받는다.
이후
python manage.py runserver 127.0.0.1:8001
이라는 커맨드를 이용하여 서버를 run 시켜주자.
Django App은 manage.py를 이용하여 많은 작업을 할 수 있다.
그러면 처음과 같이 Hello, 라며 인사해주는 웹서버를 띄울 수 있다.
혹시나싶어 프로젝트 구조를 첨부한다
마치며
정말 간단한 Django App을 만들어봤다.
다음 글에선 uWSGI와 Django App을 연동시키겠다.
'Python > Frameworks.Libraries' 카테고리의 다른 글
docker-compose를 통해 Nginx, Django 연동하기 2 - Django App과 uWSGI 연동하기 (0) | 2019.09.08 |
---|---|
Django App Templates Directory. 장고 앱 템플릿 디렉토리 구조에 대해 (0) | 2019.09.02 |
Django 테이블 삭제하는 방법. django.db.utils.OperationalError: no such table 오류 해결 방법 (0) | 2019.09.01 |
웹서버를 짜주는 Django 에서 프로젝트를 구성하는 방식 (0) | 2019.06.29 |
[파이썬 게임 예제] pygame으로 벽돌깨기 만들기 (0) | 2019.02.23 |