[Do it! 장고 + 부트스트랩] 따라하기 - 3

THOVY·2022년 8월 22일
0

따라하기

목록 보기
19/20

시작 👊

어제 환경설정을 모두 마쳤다.
빠르게 진행해보자.

장고로 기초 웹 사이트 만들기

일단 어제 배웠던 것 처럼 venv\Scripts\activate.bat 을 입력해 가상환경을 실행한다.

장고 프로젝트 생성하기

  1. 터미널에서 django-admin startproject do_it_django_prj . 를 입력한다. . 까지해야됨.

    . 의 의미는 "이 폴더에 장고프로젝트를 만들자." 는 의미입니다.

  2. ls 를 입력해 어떤 파일과 폴더가 생겼는지 확인해보자.

    do_it_django_prj 폴더와 manage.py 파일이 새로 생성되었습니다.

  3. 새 장고프로젝트가 잘 생성되었는지 확인하기 위해 python manage.py runserver 를 입력합니다.

    ...?
    어떻게 된 건 가요 선생님...

    이 명령어를 입력하면 서버거 실행됩니다. 아직 마이그레이션을 하지 않았다는 오류 메시지가 나타나지만, 장고 프로젝트가 제대로 만들어졌는지 확인하는데는 문제가 되지 않습니다.

  4. 휴. 다음으로 넘어가보자.

    출력값 중 아래에 있는 서버 주소 (http://127.0.0.1:8000/) 를 웹 브라우저 주소 창에 입력해보세요.


로켓 그림과 함께 successfully! 라고 나온다 기분이 좋다.

파이참을 열어 방금 생성한 장고 프로젝트 폴더(do_it_django_prj)를 열어보면 파일이 여러개 있습니다. 앞으로 이 중 urls.pysettings.py 를 많이 다룰 것입니다.

urls.py 는 사용자가 어떤 URL 형식으로 접근 했을 때 어떻게 웹 사이트를 작동 시킬지를 정리해놓은 파일입니다.
setting.py 는 이 장고 프로젝트의 설정을 담고 있는 파일입니다. 설정해야 할 것들이 있지만 차근차근 해봅시다.

데이터베이스에 관리자 계정 생성하기

앞서 오류메세지는 "아직 적용되지 않은 18개의 마이그레이션이 있습니다. 이 마이그레이션을 적용하기 전까지 당신의 프로젝트는 제대로 작동하지 않을 수 있씁니다." 라는 말입니다.

migration 이란
데이터베이스에 적용시켜야하는 변화에 대한 기록입니다. 예를 들어 댓글 기능이 없던 블로그에 댓글 작성 기능을 추가했다고 가정해봅시다. 그러면 데이터베이스에 댓글을 저장하기 위한 공간(테이블)이 필요하겠죠? 이를 데이터베이스에 반영해야 서버를 실행했을 때 웹사이트에 추가한 댓글 기능을 제대로 사용할 수 있습니다.

그런데 아직 아무것도 만들지 않았는데, 왜 적용해야할 마이그레이션이 존재하는 걸까?

장고는 새 프로젝트를 생성할 때 데이터베이스에 기본적으로 필요한 테이블을 미리 마련해두기 때문입니다.

먼저 데이터베이스를 만들어보자.

  1. 마이그레이션을 적용하기 위해 먼저 터미널에서 ctrl + c 를 눌러 지금 작동중인 가상서버를 중단하자.
    음. 왜 그대로인거같지 가상서버를 중단하는 게 아닌가. 왜 그대로인거같지. 암튼 책에서도 (venv) 를 그대로 켜놓으시네.
    일단 해보자.

    원래는 python manage.py migrations 명령어로 먼저 마이그레이션을 만들어야하지만, 지금은 장고가 알아서 만든 마이그레이션이 있으므로 생략하겠습니다. 바로 python manage.py migrate 명령어를 입력하세요. 지금은 아직 데이터베이스를 만들지 않은 상태이므로 db.sqlite3 라는 파일이 새로 만들어지고, 그 안에 마이그레이션을 반영한 데이터 베이스가 생성됩니다.

무슨 말인 지 감이 안오지만. 어쨋든 업데이트 된다. 는 말인 거 같다.

  1. ls 를 입력해보면 db.sqlite3 가 생성된 것을 확인 할 수 있다.

SQLite3 를 사용하나요?

sqlite3 의 특징은 파일 하나로 관리하는 데이터베이스라는 점입니다. 오라클. MySQL, MongoDB, PostgreSQL 등 다른 데이터베이스는 따로 복잡한 설치과정을 거쳐야합니다. 백업을 하기 위해서는 데이터베이스에 대한 지식을 어느 정도 갖고 있어야한다는 어려움도 있고요. 이에 비해 SQLite3 는 파일 하나만 관리하면 됩니다. 백업하고 싶으면 안전한 곳에 복사해 놓으면 끝인 거죠. 이런 간편함 때문에 장고에서는 SQLite3 를 기본 데이터베이스로 사용하고 있습니다.
물론 단점도 있습니다. 파일 기반의 데이터베이스이기 때문에 읽고 쓰기가 빈번하게 일어나는 대형 프로젝트에서는 불리합니다. 예를 들어 수천, 수만 명의 사용자가 동시에 몰리는 웹사이트에는 적합하지 않을 수도 있고, 이런 경우 고성능의 다른 데이터베이스를 사용해야합니다.
아직 데이터베이스가 익숙치 않은 분들이 있을 수 있기 때문에 장고의 기본 설정대로 SQLite3 를 사용해 데이터베이스를 다루는 경험을 쌓은 다음 배포하기 전에 PostgreSQL로 전환하도록 구성했씁니다.

관리자 계정 생성하기

  1. python manage.py createsuperuser 를 입력하세요.

  2. username,email,pw 를 입력하라고 나온다.

    비밀번호로 1234 는 적합하지 않은가보다.
    n 을 눌러 다시 입력할 수 있도록해서 제대로 된 비밀번호를 입력하자.

  3. 다시 python manage.py runserver 를 입력해 서버를 실행하자.

    오류없이 잘 실행되는 것을 알 수 있다.

  4. 띄워져있던 웹 브라우저창 주소에 admin을 추가해보자.
    127.0.0.1:8000/admin

    그러면 이런 페이지가 나온다.

아직 아무것도 하지 않았는데, 이미 장고가 관리자페이지를 생성해 놓았네요. [User]를 클릭하면 방금 만든 관리자 계정이 등록되어 있습니다.

  1. 방금 만든 아이디와 페스워드를 입력해보자.

현재는 이 사이트의 계정과 관련된 내용만 있지만 앞으로 기능을 추가하면 관리자 페이지도 확장될 겁니다. 이게 바로 웹 프레임 워크를 사용하는 이유죠. 편리하지 않나요?

git 에서 데이터베이스 버전 관리하지 않게 등록하기.

잊어버리기 전에 확이할 게 있습니다. .gitignore 파일을 열어 db.sqlite3 가 포함되어있는지 확인해보세요.

있씁니다 선생님.

아까 깃허브에서 저장소를 생성할 때 Add .gitignore 를 python 으로 했다면 포함되어있을 것입니다. 만약 없다면 추가하면 됩니다.

지금까지 내용 커밋하기

많은 것을 하진 않았지만. 정리차원에서 깃으로 커밋합시다.

  1. ctrl + c 로 서버를 종료한다.
  2. git add . 을 입력해 변경기록을 추가한다.
  3. git commit -m "메세지" 를 입력해 커밋한다.

    간지나게 영어로 커밋메세지 적음.

책처럼 처음 깃을 사용하는 사람이라면 Please tell me who you are 이라고 한단다.
자기 깃허브 이메일과, 이름을 입력하면 된다.
책에서 Please 오타남. Pease 라고 적혀있음.

  1. git status 라고 쳐보면

    라고 git push 해서 로컬에 있는 걸 publish 하라고 적혀있다.

이상해 방금 vscode 로 git push 안했는데도 git status 보니까 깔끔하던디.

왜일까

어찌됐든~

  1. 깃 웹페이지에 가 보면

    db.sqlite3 없이 잘 올라가있는 것을 확인할 수 있다.

번외

파이참 professional 에서 장고를 더 잘 지원하도록 설정하기.

나는 community니까 안 읽어야지...😔

profile
BEAT A SHOTGUN

0개의 댓글