[Django] 장고 소개 및 환경 구성 (using 아나콘다-anaconda)



장고(Django)에 대하여 내용을 정리하고 아나콘다를 이용하여 가상환경 내에 장고를 설치하는 방법을 정리합니다.


장고(Django)

Django(장고)는 파이썬으로 만드어진 무료 오픈소스 웹 애플리케이션 프레임워크 입니다.

파이썬 환경에서 쉽고 빠르게 웹사이트를 개발하고 만들수 있도록 도와주는 기능들이 집약된 프레임워크로 보면 되겠습니다.

프레임워크는 어떠한 목적(개발)을 하기 위한 요소(기능)들을 구현하고 어떠한 것을 만들 수 있는 기본적인 환경과 구조를 제공하는 것입니다.

프레임워크가 없다면 처음부터 끝까지 모두 직접 개발을 해야 하겠지만 프레임워크를 사용한다면 기본적인 구조나 기능들은 사용하면 되기 때문에 좀 더 쉽게 접근하고 소프트웨어를 개발할 수 있겠습니다.

다만 프레임워크의 기능을 사용하기 때문에 제공되는 기능에 제약적일 수는 있습니다. 이러한 경우는 Library(라이브러리)를 활용하면 제약을 벗어날 수 있고 유연하게 기능을 개발할 수 있겠습니다.

참고적으로 라이브러리는 특정 기능을하는 API, 도구, 함수를 모아둔 집합이라고 생각하면 되겠고 라이브러리를 불러와서(import) 함수를 호출하여 기능을 사용하기 때문에 프레임워크와는 다른 개념으로 생각할 수 있겠습니다.

결론적으로 Django는 Python 환경(Pythons으로 만들어진)의 웹 애플리케이션을 개발하기 위한 프레임워크라고 생각할 수 있겠습니다.


장고(Django) 설치 (using anaconda)

아나콘다(Anaconda)에서 Django 프로젝트를 테스트할 가상환경(Virtual Env)를 생성 합니다.

오른쪽에 필터를 ‘Installed’에서 ‘ALL’로 변경한 후, Django 패키지를 검색하고 장고 패키지를 설치 합니다.

가상환경에 패키지 설치가 완료되면 Home 화면으로 돌아와서 Jupyter Notebook을 실행합니다.

Jupyter Notebook에서 작업 공간(‘Django_test’)를 생성합니다.

그리고 Terminal로 접속하여 가상환경 접속하고 장고 프레임워크를 이용하여 프로젝트를 생성하겠습니다.

우선 Terminal로 접속하여 위에 생성한 작업공간(디렉토리)로 이동을 하고 가상환경 리스트를 조회해 보면 현재 Jackerlab_Django 가상환경에 접속된 상태(경로 앞에 ‘*’)로 확인할 수 있습니다.

PS D:\python_test_anaconda\Django_test> conda env list
# conda environments:
#
base                     C:\Users\7040_64bit\Anaconda3
Jackerlab_Django      *  C:\Users\7040_64bit\Anaconda3\envs\Jackerlab_Django
Jackerlab_Flask          C:\Users\7040_64bit\Anaconda3\envs\Jackerlab_Flask
python_test              C:\Users\7040_64bit\Anaconda3\envs\python_test

가상콘솔에 접속한 상태에서 장고 프로젝트를 생성합니다.

PS D:\python_test_anaconda\Django_test> django-admin.py startproject jackerlab_django .
PS D:\python_test_anaconda\Django_test>

위 명령어의 의미는 장고 패키지에서 제공하는 프로그램(django-admin.py)을 이용하여 프로젝트를 생성하겠다는 의미의고 그 프로젝트의 이름은 jackerlab_django이며 현재 경로(.)에 프로젝트를 설치하겠다는 의미입니다.

프로젝트를 생성하면 작업공간(디렉토리)에 장고 프로젝트의 기본 파일들이 생성된 것을 확인 할 수 있습니다.

Django는 Flak와는 다르게 기본적으로 제공하는 기능과 환경이 어느정도 구성되어 있습니다. Django에서 제공하는 범위내에서 웹서비스를 구성해야 하기 때문에 사용에 필요한(사전에 정의된) 환경 설정 등을 해야 할 필요가 있습니다.


장고 웹서비스 기본 환경 설정

설정해야 할 것들은 장고 프로젝트에서 기본으로 생성해준 파일들의 설정을 변경하면 됩니다.
그 파일은 프로젝트 폴더 내에 settings.py라는 파일입니다.

그리고 아래와 같이 설정을 변경하면 되겠습니다.

# settings.py
TIME_ZONE = 'Asia/Seoul'

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static') // 신규 라인 추가

ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]']

장고 웹서비스 구동 및 확인

기본적인 환경설정이 완료되면 Jupyter Notebook에서 터미널에 접속하여 웹서비스를 구동하고 정상적으로 접속이 되는지 확인하면 됩니다.

PS D:\python_test_anaconda\Django_test> python manage.py runserver 0.0.0.0:8000
Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, au
th, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
March 14, 2019 - 08:13:04
Django version 2.1.7, using settings 'jackerlab_django.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CTRL-BREAK.
[14/Mar/2019 08:13:06] "GET / HTTP/1.1" 200 16348
[14/Mar/2019 08:13:06] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[14/Mar/2019 08:13:06] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564
[14/Mar/2019 08:13:06] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304
[14/Mar/2019 08:13:06] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348
Not Found: /favicon.ico
[14/Mar/2019 08:13:06] "GET /favicon.ico HTTP/1.1" 404 1982

웹 서비스를 구동할 때 IP와 포트를 지정할 수 있고 위와 같이 서비스 구동 시, 지정한 IP와 포트에 웹브라우져로 접속을 하면 정상 접속이 되는 것을 확인할 수 있습니다. (http://127.0.0.1:8000/ or http://localhost:8000/)

아나콘다에서 Django 웹서비스를 개발하기 위한 기본적인 환경 구성을 하였습니다.


Reference

위키백과 – 장고
ㅇ 장고걸스 튜토리얼(Django Girls Tutorial)
– https://tutorial.djangogirls.org/ko/
ㅇ 장고 프로젝트
– https://www.djangoproject.com/
– https://docs.djangoproject.com/ko/2.1/



3 thoughts on “[Django] 장고 소개 및 환경 구성 (using 아나콘다-anaconda)”

Leave a Comment