지난 번 Mac 버전 파이썬 가상환경을 설정하고 장고 웹서버를 설치하였는데요. 오늘은 이어서 장고 웹서버 세팅하는 법을 살펴보겠습니다. 먼저 가상서버를 활성화하고 first 폴더에 들어가면 setting.py 파일이 보입니다. 자세히 살펴보면 다음과 같은 내용이 나오는데요.
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
여기서 DEBUG를 True로 설정하면 장고 웹서버에 잘못된 명령이 입력될 경우, 자세하게 디버깅을 해줍니다. 개발자 입장에선 편할지 모르겠으나 실제 사용자에게 서버를 공개할 때는 부적절하겠죠. 이 경우에는 DEBUG = False로 설정한 뒤, ALLOWED_HOSTS = [ * ] 처럼 괄호 안에 '*'를 입력해야 합니다. *는 모든 호스트를 의미합니다. 다음은 언어와 시간대를 세팅하겠습니다.
# Internationalization
# https://docs.djangoproject.com/en/3.0/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
LANGUAGE_CODE = 'ko-KR' / TIME_ZONE = 'Asia/Seoul' 로 바꿔주세요. 그리고 웹서버를 가시면 아래와 같이 한국어로 잘 설정된 것을 확인할 수 있습니다.
지금부터 장고 앱을 설치해보겠습니다. manage.py가 있는 위치에서 python manage.py startapp "myapp" 명령어를 입력해주세요.(myapp은 개인이 원하는 이름으로 설정하면 됩니다.) myapp이라는 디렉토리가 또 생겼을 겁니다. 그러면 first 폴더 안에 있는 urls.py 파일을 열고 아래와 같이 path를 추가해줍니다.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('app/', include("myapp.urls"))
]
마지막 줄이 의미하는 바는 app/ 경로로 들어오면 myapp의 url config 파일로 연결하겠다는 것인데요. myapp 폴더 안에 urls.py 라는 파일을 생성하고 아래처럼 채워넣습니다.
from django.urls import path
from . import views
urlpatterns = [
path("", views.wrtie_word)
]
from . import views 는 제가 미리 작성한 부분인데, views.py에 들어가서 아래처럼 작성해줍니다. HttpResponse 모듈을 사용하여 웹 페이지에 그대로 나타내는 것으로 파이썬의 print에 해당한다고 보면 되겠네요.
from django.shortcuts import render, HttpResponse
# Create your views here.
def write_word(request):
return HttpResponse("Hi, django world")
이렇게 설정한 뒤 127.0.0.1:8000/app/ 에 들어가면 Hi, django world 라고 표시된 것을 확인할 수 있습니다. 여기서 잠시 url 구성을 살펴보고 가겠습니다.
127.0.0.1:8000 => ip 주소: 포트넘버
127.0.0.1의 경우 각자 로컬 환경의 고유한 ip 주소를 의미합니다. 즉 모두가 127.0.0.1의 주소를 가지겠지만 같은 주소가 아닌 유니크(unique)한 주소라는 것입니다. 만약 특정 도메인 주소를 얻게 되면 ip 주소는 보이지 않고 도메인 이름이 나타나겠죠.
www.somedomain.com/ path / ? name=sol&like=python#tag
여기서 '?' 를 통해 특정 request를 보낼 수 있는데요. 이를 get parameter 또는 query string이라 부릅니다. 위의 예시를 설명해보자면 name=sol이고 like=python이라고 웹서버에 요청을 보낸 것이죠. #은 태그 또는 앵커라고 부르며 한 페이지의 특정 위치를 나타낼 때 이용합니다.
아래는 웹페이지를 여는 시점(datetime)과 string query 여부에 따른 별도의 설정을 추가한 것입니다.
import datetime
from django.shortcuts import render, HttpResponse
# Create your views here.
def write_world(request):
now_time = str(datetime.datetime.now())
name = request.GET.get('name') # 내가 보낸 string query에 해당하는 내용
# GET을 사용하면 QueryDict 형태로 반환
# GET['name']이라 설정하고 ? name='~~' query를 보내지 않으면 에러 => GET.get('') 형태로 수정
if not name: # name을 따로 지정하지 않고 string query를 보낼 때 설정
name = 'Guests'
return HttpResponse(
"<h1> Hi, django world {}</h1>".format(name)
+ '<br/><br/>'
+ now_time
)
마지막으로 장고 구성을 살펴보면 크게 다음과 같습니다. 앞 글자를 따서 장고 MTV라고도 하는데요. 저희가 이번에 다룬 것은 뷰의 화면 구성 및 통제에 해당한다고 하겠습니다. 다음에는 데이터베이스를 관리하기 위해 models.py 세팅을 살펴보겠습니다.
1. 모델(Model) - 데이터베이스 관리
2. 탬플릿(Template) - 유저 인터페이스(HTML, CSS)
3. 뷰(View) - 화면 구성 및 통제, 데이터베이스와 탬플릿 연결
'문돌이 존버 > Django 스터디' 카테고리의 다른 글
Mac 버전 장고 웹페이지 http request (1) | 2020.06.20 |
---|---|
Mac 버전 장고 데이터베이스 관리 3탄 (1) | 2020.06.20 |
Mac 버전 장고 데이터베이스 관리 2탄 (0) | 2020.06.20 |
Mac 버전 장고 데이터베이스 관리 1탄 (0) | 2020.06.19 |
Mac 버전 파이썬 가상환경 + 장고 웹서버 설정하기 (0) | 2020.06.16 |