따라하며 배우는 Django [2]

Django 시작하기

Minwoo Kang
Berkbach
Published in
10 min readJan 11, 2019

--

Photo by Jon Tyson on Unsplash

준비 사항

오늘은 Django를 설치한 뒤 서버를 열고 Admin 페이지에 접속하는 순서로 진행하겠습니다.

강좌를 진행하기 위해서 설치해야되는 것들이 있습니다.

JetBrains Pycharm Community Edition
Python 3 (python 설치 시 꼭 환경변수를 함께 추가해주세요.)
웹 브라우저 (원활한 진행을 위해서 Chrome 혹은 FireFox를 사용해주세요.)

없으시다면 각 링크를 눌러 설치를 진행해주세요.

전 포스팅을 참고하시면 파이썬 설치와 Pycharm 설치 하는 방법을 보실 수 있습니다. (전 포스팅에서는 Professional 버전을 사용한다고 하였지만 이번 강좌는 Community 버전으로 진행하기 때문에 Community 버전을 설치하시면 됩니다.)

프로젝트 생성 및 Django 설치

Pycharm을 설치하신 후 에디터 설정까지 마치신다면

Pycharm 초기 화면

이런 화면이 보이실텐데 New Project를 눌러주세요.

New Project 클릭 후

그 후 프로젝트를 만들 장소를 정해주고, 꼭 Project Interpreter 설정이 New environment using으로 되어있도록 해줍니다. 혹여나 자신의 컴퓨터에 python 2버전이 깔려있다면 Base Interpreter이 python 3인지 확인해줍시다.

이제 만들어볼까요? 프로젝트는 virtual env 설정 때문에 만들어지는데 시간이 걸릴 수 있습니다.

Terminal 화면

프로젝트가 성공적으로 만들어지면 Terminal창에 pip install django라는 명령어를 입력해줍니다. 이는 Python 패키지 관리자인 pip를 이용하여 django 라는 패키지를 설치하라는 뜻을 가집니다.
(Terminal 창이 보이지 않는다면 창 하단에서 빨간색 박스로 표시한 Terminal 버튼을 눌러주시면 됩니다.)

install django

그렇다면 이런 메세지와 함께 django가 설치되게됩니다. (저는 django를 전에 설치했던 상태여서 로그가 많이 뜨진 않았네요.)

Django 프로젝트 생성 및 실행

django-admin startproject mysite .이라는 커맨드를 입력하여 Django 프로젝트를 생성해주세요. 굳이 저 커맨드를 해석하자면 root파일의 이름을 mysite로 하여 현재 디렉토리에 프로젝트를 생성한다는 의미입니다. 만약 커맨드 뒤에 .을 붙이지 않는다면 mysite라는 디렉토리를 생성하고 그 안에 프로젝트를 생성해주게 됩니다. 저는 현재 디렉토리에 프로젝트를 생성하는 것이 더 자연스럽다고 생각이 되어 .을 붙여서 생성하겠습니다.
( 이 내용이 이해가 안되신다면 두 커맨드를 다 실행시켜보세요. 바로 이해가 되실 겁니다. )

프로젝트 생성 후

Django 프로젝트 생성 후의 파일 구조입니다. mysite라는 디렉토리 안에 __init__.py, settings.py, urls.py, wsgi.py 파일이 존재하고, 추가적으로 manage.py 라는 파일이 있습니다. 파일별 역할을 정리하자면,

  • mysite/__init__.py : 이 파일을 통해서 이 디렉토리를 패키지처럼 다루라고 알려줍니다. 단순 빈 파일입니다. Python을 접한지 오래되지 않았다면 Python 공식 홈페이지의 more about packages를 읽어보세요.
  • mysite/settings.py : Django 프로젝트의 환경/구성을 설정할 수 있습니다. settings.py를 현재는 깊게 알아보진 않을 것입니다. settings.py에 대해서 깊게 설명하는 강좌는 따로 시간을 내서 작성해보도록 하겠습니다. 급하신 분들은 Django Document에도 명시가 잘 되어있으니 참고하시면 될 것 같습니다.
  • mysite/urls.py : Django 프로젝트의 URL 선언을 저장합니다. Django Document에서는 ‘목차’라고 비유를 하고 있네요.
  • mysite/wsgi.py : 프로젝트를 서비스 하기 위한 설정파일입니다. 이 강좌에서는 이것까지 다루진 않겠습니다. 궁금하신 분들은 Django Document를 참고해주세요.
  • manage.py : 지금부터 프로젝트를 진행하며 많이 보게 될 이름입니다. Django 프로젝트와 다양한 방법으로 상호작용하는 커맨드라인의 유틸리티입니다.

그럼 이제 Django 서버를 열어볼까요? Terminal 창에 python manage.py runserver 을 입력해주세요.

python manage.py runserver

그렇다면 이러한 화면이 보이실 겁니다. 성공적으로 Django 서버를 여신겁니다!

저기에 써져 있는 영문을 해석해보자면,

너는 15개의 migration을 적용하지 않았다. admin, auth, contenttypes, session 앱에 대한 migration을 적용하기 전까지 프로젝트가 제대로 작동하지 않을 수 있다. python manage.py migrate 를 실행하여 적용시켜라.
서버가 시작되어진 시간.
Django 버전은 2.1.5이고,
mysite.settings 파일의 설정을 사용 중.
개발서버가
http://127.0.0.1:8000/에서 시작.
CTRL-BREAK를 이용하여 종료.

네, 그렇답니다. ‘이걸 왜 굳이 해석했지?’라고 생각하실 수 있지만 저런 로그들 하나하나 읽는 습관을 들이신다면 나중에 꼭 도움이 되실거라 믿기 때문에 습관화하자는 의미에서 해석을 해보았습니다.

저 로그를 보았을 때 저희는 언젠가 python manage.py migrate 라는 작업을 할 필요가 있어보이네요. 일단 이 작업은 살짝 미뤄두고 http://127.0.0.1:8000/에 접속을 해봅시다. ( Terminal에 있는 주소를 클릭하시면 되요. )

http://127.0.0.1:8000/에 접속한 모습

이런 화면이 잘 보이시나요? 보이신다면 지금까지 정말 잘 따라오고 계신겁니다. 이제 오늘 강좌의 마지막 단계로 가볼까요?

Admin 계정 생성 및 Admin Page 접속

웹페이지 뒤에 admin 을 입력하셔서 http://127.0.0.1:8000/admin/에 접속을 해주세요.

뭔가 에러같은 화면이 떴군요. 뭐가 문제일까요? no such table: django_session이라는 에러 메세지를 보아하니 django_session 이라는 table을 찾을 수 없다는 것 같습니다. ( 제가 전 강좌에서 말씀드렸던 디버깅 모드의 장점입니다. ) 여기서 table은 DB에서 사용하는 용어로 따로 공부를 하실 필요가 있을 것 같습니다. 지금 당장 급하게 알아야될 내용은 아니니 넘어가셔도 되지만 꼭 DB에 대해 공부를 하시길 권유드립니다.

눈치가 빠르신 분들은 여기서 어떤 작업을 해야되는지 아셨을 겁니다. 네, 바로 아까 Django에서 해야된다고 알려줬던 python manage.py migrate 를 실행시켜주시면 됩니다. 실행시켜볼까요? ( Terminal을 하나 더 여시고 작업을 해도 되지만 그 방법을 모르시는 분들은 ctrl + c 를 이용하여 서버를 중지시켜주시고 command를 입력해주세요. )

python manage.py migrate

실행을 시키니 이런 로그들이 뜨네요. 이미 서버도 꺼뒀으니 이참에 Admin 계정도 한꺼번에 만들도록 할게요. python manage.py createsuperuser 를 이용하여 Admin 계정을 만들어주세요.

python manage.py createsuperuser

저기서 username은 id를 뜻합니다. 저는 id는 admin으로 입력하였고, Email주소는 선택사항이기 때문에 기입하기 않았습니다. password부분에 아무것도 보이지 않는데 입력이 되지 않은 것처럼 보일 뿐 입력이 되어져있는겁니다. 입력하실 때 당황해하지 마시고 천천히 입력하여 password 확인까지 입력해주세요.

Superuser created successfully 라는 문구가 나왔다면 드디어 Admin Page에 접속할 준비가 끝난 것입니다. python manage.py runserver 를 입력하여 서버를 실행시켜주시고, http://127.0.0.1:8000/admin/에 접속하여 주세요.

Django Admin Page 화면

이 화면이 뜨신다면 완벽하게 따라오신겁니다. 이제 저희가 만들었던 id와 password를 이용하여 로그인을 해볼게요.

Django Admin Page 접속

성공적으로 로그인이 되었습니다! 오늘 저희는 프로젝트를 만들고 서버를 연 후, Admin Page까지 성공적으로 접속하였습니다.

이번 강좌를 진행하면서 분량이 좀 많다는 생각이 드셨을 수 있습니다. 저는 Django에 대한 기초를 탄탄히 다지며 실력을 기르는 것이 중요하다고 생각됩니다. 그러다보니 하나하나 꼼꼼히 설명하고, 강좌를 보시는 분들이 충분히 겪을 수 있는 Error들을 최대한 짚고 넘어가려 했던 것 같고 이런 이유 때문에 분량이 많아졌던 것 같습니다.

제가 미처 짚고 넘어가지 못한 Error들이나 설명이 부족한 개념들을 댓글로 적어주시면 성심성의껏 답변해드리도록 하겠습니다.
다음 강좌는 투표 앱을 만들기 위한 준비를 하도록 하겠습니다.

혹여나 막히신 분들을 위하여 프로젝트를 github를 통해 공유해드리겠습니다. commit message를 통해 필요한 부분을 clone하여 참고하시면 될 것 같습니다.

github address : https://github.com/leensungzero/Medium-Django

--

--