맛있는감귤

[Django, Python] 로컬에서 Hello World 출력하기 본문

DB/Django

[Django, Python] 로컬에서 Hello World 출력하기

맛있는감귤 2017. 2. 1. 18:37

기준

OS X

Sublime Text 2

Django 1.9

python 2.7.10


Python 설치



최신 리눅스나 OS X에서는 파이썬이 깔려있는 경우도 있는데 없거나 다른 버전 설치를 원하시는 경우

https://www.python.org/

위 링크에서 받아 설치하시면 됩니다.

최신 버전은 3. 이지만 라이브러리 등의 이유로 2. 버전 사용하시는 분들이 많습니다.

터미널, shell에서  python 이라고 입력 해주시면 실행 가능합니다.

만약 python3를 설치하고 실행했는데 2. 버전 대가 실행된다면 두 버전이 설치되어 있는 것입니다.

그럴때는 Ctrl+D 혹은 exit() 명령어를 통해 빠져 나온 후, python3 라고 입력하시면 됩니다.


pip 설치, 업데이트



pip는 파이썬 패키지를 쉽게 설치해주는 도구입니다.

dJango 또한 파이썬을 이용해 만든 패키지이기 때문에 pip를 이용해 설치해주도록 합시다.

파이썬이 설치되어 있다면 같이 설치가 됐을것 입니다

확인은 pip 라고 입력했을 때 commands 등 pip의 정보가 나온다면 설치가 돼있는 것!

pip 업데이트 명령어

  pip install --upgrade pip


Django 설치



 pip install django 

위 명령어를 입력해 dJango를 설치하도록 합시다.


프로젝트 생성


터미널, shell에서 django 프로젝트를 생성하기 위해서는 원하시는 폴더로 이동 후, 아래의 명령어를 사용하시면 됩니다.

django-admin startproject '패키지 이름'

manage.py 파일이 있는 폴더에서  python manage.py runserver를 입력해주시면 

그럼 터미널에서 아래 문구가 출력되면서 서버가 실행되고 리퀘스트를 받을 때마다 터미널에 출력됩니다.

그리고 주소창에

http://localhost:8000  이나  http://127.0.0.1:8000 에 접속해서 확인해보실 수 있습니다. 크롬에서는 http:// 생략 가능.


Hello World 출력


Sublime Text에서 폴더를 누르거나 폴더내에 들어가서 Open을 하면 프로젝트 단위로 불러오게 됩니다.

newProject안의 같은 이름인 newProject가 프로젝트 전반적인 설정을 맡게 됩니다.

이제 웹 상에서 Hello World를 출력해보도록 하겠습니다.

과정은 이렇습니다.

  1. 새로운 앱 만들기
  2. 새로운 앱에서 Hello World를 출력하는 함수를 만들기.
  3. 함수를 실행하는 조건을 지정하는 함수 만들기
  4. 앱에 접근할 조건을 지정해주는 함수 만들기.

1. 새로운 앱 만들기

프로젝트 안에는 여러개의 App들이 모여 하나의 웹을 구성하는데, 저희는 "Hello World"를 출력하는 App을 하나 만들도록 하겠습니다.

터미널에서 python manage.py startapp 'app 이름' 으로 앱을 만들 수 있습니다.

위 처럼 나오면 성공입니다.


2. hello world를 출력하는 함수는 newApp의 views.py에서 만들어 줍니다. (기본적으로 장고는 MVC 패턴을 지향하며 views.py는 controller 를 담당)

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello world")

newApp의 views.py에서 페이지 요청에 대해 "Hello World"를 반환하는 함수 입니다.


3. 함수를 실행하는 조건을 지정하기 위해서는 urls 파일을 만들어줘야 합니다.

프로젝트에는 있는데 앱에서는 없기 때문에 파일을 새로 만들어줍니다.

앱 폴더 내에서 urls.py 라는 파일을 하나 만들어주고

# -*- coding: utf-8 -*-

from django.conf.urls import url
from . import views #.은 현재 폴더(newApp)를 의미합니다.

urlpatterns = [
    url(r'^$', views.index), #위의 urls.py와는 달리 include가 없습니다.
]

#부분은 주석이니 신경안쓰셔도 됩니다.

주석으로 설명을 달아놓은 것 처럼 views.py에서 만든 함수를 지정하도록 urlpatterns를 만들어 줍니다.

# -*- coding: utf-8 -*- 는 한글이 들어올 때 SyntaxError가 발생하기 때문에 적어준것입니다. (앞에 # 떼면 안돼요!)


4. 앱에 접근하기 위한 조건을 지정해주기 위해서는 newProject\newProject의 urls.py의 urlpatterns 를 수정해줘야 합니다.

# -*- coding: utf-8 -*- 

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^', include('newApp.urls')), #localhost:8000으로 요청이 들어오면 newApp.urls로 전달
    url(r'^admin/', include(admin.site.urls)), #app 접속을 위해 include를 씁니다.
]

기존의 urlpatterns를 보시면 admin/만 있는걸 볼 수 있는데 이는 localhost:8000/admin 에 해당됩니다.

저희는 localhost:8000 을 입력했을 때 메인에서 Hello World를 출력하는 것을 원하기 때문에 첫째 줄처럼 r'^' 이라고 해주고 newApp의 urls을 전달하도록 지정해줍니다.

import url 뒤에 include를 써주세요.

앞서 작업했던 파일들은 꼭 저장해주세요.

이제 서버를 다시 열어서 로컬에 접속해보시면

위 화면처럼 나오는 것을 보실 수 있습니다.

Hello World 하나 출력하는데 많은 설명이 있었는데 해보시면 생각보다 별거 없습니다.