장고 프로젝트를 위한 새로운 레포를 만들자.
공개 범위는 private로 하자. 웹 사이트를 개발하다 보면 secrete key를 비롯해 여러 가지 보안과 관련된 설정들이 소스 코드에 남아 있게 될 것이기 때문이다.
또한 Add .gitignore를 Python으로 설정하자. .gitignore는 깃으로 버전 관리하지 않을 폴더, 파일을 설정하기 위한 용도이다. 이 항목을 Python으로 설정하면 파이썬 개발자들이 일반적으로 버전 관리를 하지 않아도 되는 목록이 적혀 있는 .gitignore 파일이 자동으로 생성된다.
이후 해당 레포를 local에 클론하자.
PyCharm IDE를 실행 후 'New Project'를 클릭.
작업을 수행할 경로를 설정해주고, 'Previously configured interpreter'를 체크.
Add Interpreter를 클릭 한 후에 Add Local Interpreter를 클릭.
설정이 완료되었으면 Create 생성!
성공적으로 Project 생성 후 파이썬 파일을 생성하여 정상적으로 작동하는지 확인.
추가적으로 .gitignore에 .idea라는 폴더를 추가하자.
이것은 파이참에 의해 자동으로 생성된 폴더고, 파이참이 편의를 제공하기 위해 만들어진 폴더이므로 버전 관리를 할 필요가 없다.
게다가 혹시나 다른 컴퓨터에서 작업할 때 오히려 프로젝트 설정이 충돌할 수 있다.
아래와 같이 .gitignore에 추가!
cmder에서 프로젝트 폴더로 들어가 conda activate do_it_django를 입력하여 가상환경을 실행하자.
터미널에 pip install django
를 입력하여 장고를 설치하자.
이제 장고 프로젝트를 생성해보자.
터미널에서 django-admin startproject do_it_django_prj .
라고 입력하자.
이때 맨 마지막의 닷(.)을 잊지 말자! 여기서 닷의 의미는 "이 폴더에 장고 프로젝트를 만들자" 라는 의미이다.
이제 ls
명령어로 보면, do_it_django_prj 폴더와 manage.py가 새로 생성된 것을 볼 수 있다.
새 장고 프로젝트가 잘 생성되었는지 확인하기 위해 python manage.py runserver
를 입력해보자.
해당 명령어를 통해서 서버를 실행해보면, 아직 마이그레이션을 하지 않았다는 오류 메시지가 나타나지만 장고 프로젝트가 제대로 생성되었는지 확인하는 데는 문제가 되지 않는다.
출력값 중 서버 IP 주소 https://127.0.0.1:8000을 웹 브라우저 주소 창에 입력해보자. 다음 그림과 같이 나오면 성공이다.
앞에서 python manage.py runserver
로 서버를 실행했을 때 아직 마이그레이션을 하지 않았다는 오류 메시지가 나타났을 것이다.
장고에서 마이그레이션(migration)이란 데이터베이스에 적용시켜야 하는 변화에 대한 기록이다.
예를 들어 댓글 기능이 없던 블로그에 댓글 작성 기능을 추가했다고 가정해보자. 그러면 데이터베이스에 댓글을 저장하기 위한 공간(테이블)이 필요하다. 이를 데이터베이스에 반영해야 서버를 실행했을 때 웹 사이트에 추가한 댓글 기능을 제대로 사용할 수 있다.
그런데 아직 아무 기능도 만들지 않았는데 적용해야 할 마이그레이션이 왜 존재하는 걸까?
장고는 새 프로젝트를 생성할 때 데이터베이스에 기본적으로 필요한 테이블을 미리 마련해두기 때문이다!!!
마이그레이션에 대한 내용은 차근차근생활 & 코딩 by ssilook, 동연이의 지식저장소에 자세히 나와있으니 참고하자.
마이그레이션을 적용하기 위해 먼저 터미널에 Ctrl+C를 눌러 서버를 중단하자.
원래는 python manage.py migrations
명령어로 먼저 마이그레이션을 생성해야 하지만, 지금은 장고가 알아서 만든 마이그레이션이 있으므로 생략한다.
python manage.py migrate
명령어를 입력하자. 현재는 아직 데이터베이스를 만들지 않은 상태이므로 db.sqlite3라는 파일이 새로 생성되고, 그 안에 마이그레이션을 반영한 데이터베이스가 생성된다.
이제 웹 사이트의 관리자 계정을 생성해보자.
터미널에서 python manage.py createsuperuser
을 입력하자.
그리고 사용자명과 이메일 주소를 입력하고, 비밀번호도 두 번 입력하자.
이후 다시 python manage.py runserver
로 서버를 실행해보자. 마이그레이션 오류 없이 잘 실행되는 것을 볼 수 있다.
서버를 실행한 다음 웹 브라우저에서 127.0.0.1:8000/admin/으로 접속해보자.
다음과 같은 화면에서 방금 만든 관리자 계정의 사용자명과 비밀번호를 입력하고 로그인 하면 관리자 페이지에 접속할 수 있다.
벌써 장고가 알아서 관리자 페이지를 생성해 놓은 것이다. Users를 클릭하면 방금 만든 관리자 계정이 등록되어 있는 것을 볼 수 있다.
현재는 이 사이트의 계정과 관련된 내용만 있지만 앞으로 기능을 추가하면 관리자 페이지도 화장될 것이다.