파이썬 웹프로그래밍 - 장고(Django)설치

프로그래밍/Python 2018. 4. 4. 22:35
반응형

Python으로 웹프로그래밍을 하려면 많은 web framework(https://wiki.python.org/moin/WebFrameworks)가 있는것 같습니다. 이들중에 가장 잘 알려진 것이 장고(Django)인것 같습니다. 이 글에서는 Django의 설치 및 간단한 샘플을 실행해 보도록 하겠습니다.


Django는 신속한 개발과 깨끗하고 실용적인 디자인을 부추기는 고수준의 Python 웹 프레임 워크입니다. 라고 공식 사이트에 나와 있습니다. (https://www.djangoproject.com/) Django는 BSD 라이센스 하에 오픈 소스로 제공 됩니다


이글을 작성하는 현재 Django 의 최신 버전은 1.11.1 버전입니다. Django는 를 설치하기 전에 먼저 Python이 설치되어 있어야 합니다. Python의 설치는 "Python 설치하기" 를 참고 하세요. 


(2018년 2월 5일 현재 Django의 최신 버전은 2.0.2 입니다. 이 글의 설치 단락 끝부분에 업그레이드 방법을 추가해 두겠습니다.)


이 글은 Django 사이트의 튜토리얼을 정리한 것입니다.(https://docs.djangoproject.com/en/1.11/intro/tutorial01/)


다음 명령으로 Django 를 설치하고, 설치가 잘되었는지 확인 합니다. 설치환경은 Windows 10 + Pythn 3.6 입니다. 파이썬 패키지 매니저 pip 는 3.4 버전 부터 미리 포함되어 있습니다.

 

C:\>pip install Django==1.11.1

C:\>python
>>> import django
>>> print(django.get_version())
1.11.1
>>>

 

Django 설치



다음 명령으로도 설치를 확인할 수 있습니다.

 

C:\>python -m django --version
1.11.1

 

파이썬이 설치된곳 아래에 Scripts 폴더에 django-admin.exe 파일이 있을 것입니다.


※ Django 2.0.2로 업그레이드 하기


장고 버전과 매칭되는 파이썬 버전입니다. 자신이 사용하는 파이썬 버전에 맞는 버전의 장고를 설치하면 되겠습니다. 파이썬 2.7이 지원되는 장고의 마지막 버전은 1.11 입니다.


장고 버전   파이썬 버전

-------------------------------------------------------

1.8     2.7, 3.2 (2016 년 말까지), 3.3, 3.4, 3.5

1.9, 1.10   2.7, 3.4, 3.5

1.11     2.7, 3.4, 3.5, 3.6

2.0     3.4, 3.5, 3.6

2.1     3.5, 3.6, 3.7


장고를 새 버전으로 업그레이드 하기 위해서는 이전 버전의 장고가  설치되어 있다면 제거해야 합니다. 하지만, Djang의 설치를 pip 또는 easy_install을 사용해서 설치했다면, 새 버전을 pip 또는 easy_install을 통해서 설치하기만 하면 이전 버전이 자동으로 처리되어 집니다.

C:\>pip install Django==2.0.2

이제 Django가 설치되었습니다. 샘플 애플리케이션을 만들고 실행해 보겠습니다.



1. 프로젝트 만들기


Django 를 처음 사용한다면, 몇 가지 초기 설정이 필요합니다. 이 설정은 다음 명령을 통해서 자동으로 몇가지 코드를 생성합니다. 이 코드는 Django 프로젝트를 설정하는 장고 인스턴스의 설정, 데이터베이스 설정, 장고에 대한 특정 옵션 및 응용 프로그램별 설정을 포함 합니다.

 

C:\workspace\python>django-admin startproject mysite

 

명령을 실행하면 현재 폴더(C:\workspace\python) 아래에 mysite 폴더가 생성되고, 그 안에 필요한 파일들이 생성됩니다.


생성된 파일은 다음과 같습니다.

 

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

 

- mysite/ : root 디렉토리는 단지 프로젝트를 위한 컨테이너 입니다. 이 이름은 Django에서 중요하지 않으며 바꿔도 됩니다.

- mysite/manage.py : 명령행 유틸리티로 프로젝트와 다양한 방식으로 상호작용할 수 있도록 해 줍니다.

- mysite/mysite/ : 이 디렉토리는 실제 파이썬 패키지입니다. 프로그램내에서 import 할 때 사용되어 집니다.

- mysite/mysite/__init__.py : 이 디렉토리가 파이썬 패키지임을 알리는 파일로 빈 파일 입니다.

- mysite/mysite/settings.py : 이 장고 프로젝트에 대한 환경및 설정 파일 입니다.

- mysite/mysite/urls.py : 이 장고 프로젝트를 위한 URL 선언입니다. 서비스할 URL을 미리 정의한다고 생각하면 됩니다.

- mysite/mysite/wsgi.py : 이 프로젝트를 제공할 WSGI 호환 웹서버의 진입점 입니다. WSGI(Web Server Gateway Interface)는 파이썬 웹 애플리케이션과 웹 서버간의 통신을 정의합니다. 보통 간단한 개발 동안에는 파이썬의 내장웹서버로 개발하고 서비스시에는 WSGI를 지원하는 Apache 같은 웹서버를 사용해서 서비스 합니다.



2. 개발용 웹서버 실행하기


프로젝트 루트 폴더인 mysite 에서 다음 명령을 실행해서 개발 서버를 실행합니다.

 

C:\workspace\python\mysite>python manage.py runserver

 

개발용 웹서버 실행하기




웹 브라우저로 호출한 화면입니다.


서버 실행 테스트



서버의  포트를 변경하려면 다음과 같이 실행합니다.

 

C:\workspace\python\mysite>python manage.py runserver 8080

 

서버의 IP를 변경하려면 다음과 같이 실행합니다.

 

C:\workspace\python\mysite>python manage.py runserver 0:8080

 

위에서 0은 모든 IP로부터 listen 하도록 합니다.


runserver는 코드가 변경되면 자동으로 재로딩을 합니다. 코드 변경시 재시작을 할 필요가 없습니다.



3. 설문조사 응용프로그램 만들기(실제 완전한 애플리케이션이 아닙니다.)


다음 명령으로 polls 애플리케이션을 생성합니다. 앞에서 만들 mysite프로젝트에 polls 애플리케이션을 추가하는 것입니다. 프로젝트는 하나의 사이트라고 보면 되고, 애플리케이션은 사이트내의 설문조사, 게시판, 사용자관리 등이 됩니다. 즉, 하나의 사이트의 여러개의 애플리케이션으로 구성됩니다.

 

C:\workspace\python\mysite>python manage.py startapp polls

 

다은과 같은 코드가 생성됩니다.

 

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

 

첫 번째로 view 파일을 작성합니다. /mysite/polls/views.py 파일 입니다.

 

from django.http import HttpResponse

def index(request):
    return HttpResponse("설문조사의 인덱스 위치 입니다.")

 

두 번째로 polls 애플리케이션의 /mysite/pools/urls.py 파일을 생성합니다.

 

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

 

세 번째로 root 의 /mysite/urls.py 파일을 수정합니다. 수정 내용은 polls/ 로 요청이 들어오면 pools.urls 를 실행하도록 하는 것입니다.

 

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

urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
]

 

include 함수는 다른 URLconf를 참조 할 수 있도록 합니다. include() 함수의 정규 표현식에는 $(문자열 끝 일치 문자)가 아니라 후행 슬래시가 사용됨에 주의해야 합니다. Django가 include()를 만날 때마다 URL의 일치하는 부분은 잘라내고 추가 처리를 위해 include된 URLconf에 나머지 문자열을 보냅니다.



url 함수는 네 개의 인자를 받습니다. 그 중에 두 개가 필수인데, 정규식과 view 입니다. 정규식은 url 패턴을 나타내고, view는 일치하는 url 패턴을 찾았을 때, 호출될 view 함수 입니다.




실행결과 입니다.


장고 프로그램 실행 결과




4. 이클립스 PyDev 를 이용하여 Django 프로젝트 만들기


- 메뉴에서 File -> New -> Project 를 선택합니다.


- Select a wazard 에서 PyDev Django Porject 를 선택하고 Next 를 누릅니다.


장고 프로젝트 생성




- 프로젝트명은 HelloPython, Grammar Version은 3.6, Interpreter는 Python 3.6을 선택하고, Next 버튼을 누릅니다.


프로젝트 정보 입력




- 참조 프로젝트 페이지는 선택없이 Next 버튼을 누릅니다.


- Django Settings 에서 Django version 은 1.4 or later 를 선택합니다. 다른것은 기본으로두고  Finish 버튼을 누릅니다.


DB 설정




- 프로젝트가 생성되었습니다. 실행하기 위해서 프로젝트에 마우스 오른쪽 키를 누르고 Run As -> PyDev: Django를 실행합니다.


- 웹브라우저로 http://127.0.0.1:8000 으로 확인합니다.


샘플 페이지 실행 결과



이상으로 Django 프레임워크를 설치하고 간단한 메세지를 출력하는 샘플 프로젝트를 실행해 보았습니다.

반응형

댓글을 달아 주세요

  • Deborah 2018.04.06 11:11 신고  댓글주소  수정/삭제  댓글쓰기

    프로그래밍에 관해서 관심은 있는데 어디서 부터 시작해야할지 모르겠네요. 반려자님이 프로그래머이신데. 가르쳐 준다더니
    ㅠㅠ 아직도 안가르쳐 주네요. 여기와서 배워야 할까 봅니다. -0-
    처음인데 반가워요. 링크추가했습니다.

    • pentode 2018.04.07 13:53 신고  댓글주소  수정/삭제

      방문해 주셔서 감사합니다.^^ 운전을 가족에게 배우기가 힘든것과 비슷한게 아닐까요.ㅎㅎ 프로그래밍 공부하시다가 궁금한게 있으면 질문해주세요. 꼭 프로그래밍 잘 하게 되길 바랄께요.^^