본문 바로가기

Pyhon/Django

[Pyhon/Django] 장고 기초#001.맥(MacOS)에서 파이썬 장고(Django) 시작하기

파이썬 장고(Python django) 시작하기

장고란 파이썬 기반의 오픈 소스 웹 애플리케이션 프레임워크(Wep application framework)입니다. 장고 웹 사이트(https://www.djangoproject.com/start/overview/)에서는 파이썬 장고를 이렇게 소개합니다.

"장고를 사용하면, 생각으로부터 웹 애플리케이션의 실행까지 단 몇 시간만으로 가능합니다. 장고는 웹 개발의 수 많은 번거로움을 대신 해결하며, 당신이 쓸데 없는 것을 다시 만들지 않고 애플리케이션 작성에만 집중 할 수 있도록 합니다. 게다가 무료로 사용 할 수 있고, 오픈 소스입니다."

장고의 특징은 다음과 같이 요약 할 수 있습니다.

  • 말도 안되게 빠릅니다(Ridiculously fast)
    개발자의 생각을 최대한 빠르게 웹 애플리케이션으로 구현 될 수 있도록 도와줍니다.
  • 모든 것이 준비되어 있습니다(Fully loaded)
    일반적으로 웹 개발에 필요한 수십 가지의 기능을 포함하고 있습니다. 사용자 인증(User authentication), 컨텐츠 관리(Content administration), 사이트 맵(Site maps), RSS 피드(RSS feeds) 등 수 많은 기능을 원하는 즉시 사용할 수 있습니다.
  • 안심할 수 있습니다(Reassuringly secure)
    SQL 인젝션(SQL injection), 사이트 간 스크립팅(cross-site scripting), 사이트 간 요청 위조(cross-site request forgery), 클릭잭킹(clickjacking)과 같이 일반적으로 많이 발생하는 보안 실수를 피할 수 있도록 도와줍니다. 또한 사용자 인증 시스템은 사용자 계정과 비밀번호를 안전하게 관리 할 수 있도록 합니다.

파이썬3(Python3), 장고 설치하기

장고를 사용하기 위해서는 파이썬 2.7 버전 이상이 설치되어 있어야 하며, 권장하는 버전은 파이썬3 입니다. MacOS에서는 brew를 사용하여 파이썬3를 설치 할 수 있습니다. 자신의 PC에 파이썬3가 설치되어 있는지 헷갈리면, 설치 커맨드를 건너 뛰고 아래 버전 확인 커맨드(python3 --version)를 먼저 실행하여 설치 여부를 확인합니다.

$ brew install python3

설치가 완료되면, 버전을 확인합니다. 이 때 python3 대신 python --version을 입력하면 파이썬2 버전을 출력합니다. 앞으로 사용하는 파이썬 커맨드는 항상 python3로 시작함에 유의합니다. 제 PC에는 3.9.9 버전이 설치된 것을 확인 할 수 있습니다.

$ python3 --version
Python 3.9.9

파이썬 설치 후에 pip3를 이용하여 장고를 설치합니다. 장고의 가장 최신 LTS 버전은 3.2.9 입니다. 설치가 완료되면 pip3 list 커맨드를 입력하여 설치 된 패키지를 확인합니다. 기존에 설치 된 패키지가 많은 경우, pip3 list | grep Django 커맨드를 사용하여 설치 된 장고 패키지 버전만 출력 할 수 있습니다.

$ pip3 install Django==3.2.9
...
Successfully installed Django-3.2.9 asgiref-3.4.1 pytz-2021.3 sqlparse-0.4.2
...
$ pip3 list
Package    Version
---------- -------
Django     3.2.9

다음으로 장고 패키지 커맨드를 이용하여 테스트 프로젝트를 생성합니다. 커맨드 마지막에 마침표가 포함되면 현재 디렉토리에 프로젝트 파일들이 생성됩니다. 마침표가 포함되어 있지 않으면 현재 디렉토리에 프로젝트 이름의 폴더를 먼저 생성하고, 해당 디렉토리 안에 프로젝트 파일들이 생성됩니다.

$ django-admin startproject helloWorld .
$ ls
helloWorld	manage.py

프로젝트 명은 파이썬 모듈 명을 사용 할 수 없습니다. 만약 모듈 명과 중복 된 이름의 프로젝트를 생성하려고 할 경우 다음과 같이 에러 메시지가 출력됩니다.

$ django-admin startproject test
CommandError: 'test' conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name.

이로써 장고를 학습 할 준비가 완전히 끝났습니다.