이번 활동에는 git과 github, django에 대해서 학습했다
그래서 학습한 내용을 복습하는 차원에서 정리를 할 것이다!
첫번 째 줄: 커밋내의 변경 내용을 요약
두번 째 줄: 빈 칸
세번 째 줄: 변경한 이유
Main branch: 최종적인 상태를 의미하는 최상위 브랜치
Develop branch: 다음 출시 버전을 개발하는 브랜치로 배포 가능한 상태가 되면 main으로 병합
Feature branch: 주로 자신의 로컬 저장소에서 관리하여 기능을 개발하는 브랜치
Release branch: Feature 브랜치에서 기능 개발 > develop 브랜치에서 병합하는 과정을 반복하는 이번 출시 버전을 준비하는 브랜치
Hotfix branch: 버그를 main에서 수정하지 않고 분기하여 수정하는 브랜치
git으로 저장돼서 원격 전송 된 파이를이 저장되는 공간을 제공하는 서비스이다
무료로 전송해서 저장 가능하다는 점이 큰 장점이며 비공개로 올릴 때는 유료이다
이제 django를 하면서 git과 github를 이용할 것이다!
Model: 데이터 관련 부분
Template: 사용자에게 보이는 부분
View: 데이터 -> 템플릿 (전달) + 템플릿에서 발생한 이벤트 처리
우선 원래라면 New environment using에서 파이썬으로 가상 환경을 만들어야 하는데
나같은 경우에는 아나콘다로 인해... 충돌이 일어나서 파이썬이 없는 상황(?)이라...
나는 아나콘다를 이용하여 가상 환경을 만들어줬다!
새 프로젝트를 만들었다면 File > Settings > Tools > Terminal 에서
Shell path를 cmd.exe로 변경해줘야 한다!
그 후 Terminal에서 python --version을 입력하면 python의 버전을 확인할 수 있다
이때 Terminal은 pycharm의 하단에 있다!
그리고 괄호 안에 있는 vnv_dj 는 현재 가상 환경을 실행 중이라는 의미이다
나는 test라고 만든 프로젝트 폴더에 바로 시작할 것이기 때문에
곧바로 작업 폴더를 생성할 것이다
Terminal에 mkdir(디렉토리 폴더 생성) 01_PhotoApp(폴더 이름)을 입력하면
이렇게 01_PhotoApp 폴더가 생성된 것을 확인할 수 있다.
그후 django를 다운로드 하기 위해 Terminal에 pip install django를 입력하면
django가 설치된다!
우선 첫 번째 줄은 django 프로젝트를 생성하는 의미로
photoWeb 폴더와 manage.py 파일을 생성한다는 의미이다
여기서 . 은 현재 위치에 생성한다는 뜻이다
두 번째 줄은 photo 앱을 생성한다는 의미이다.
이렇게 명령어를 입력하면
photo, photoWeb 폴더와 manage.py 파일이 생긴 것을 확인할 수 있다!
그럼 프로젝트를 잘 만들었는지 확인하기 위해 Terminal에 프로젝트를 실행해 보자
python manage.py runserver 를 입력하면
이렇게 http 주소를 알려주는데 클릭하면
프로젝트가 알맞게 실행되고 있다는 로켓 화면이 뜬다!
그렇다면 프로젝트를 아무 탈 없이 잘 실행 시킨 것이다
여기서 project는 하나의 웹 사이트라 생각하면 되고
app은 프로젝트 내 기능 요소를 일정한 기준으로 나눠 놓은 단위이다!
(ex: 회원 가입 앱(가입,로그인), 피드 관련 앱(업로드, 수정, 삭제) 등...)
그럼 앱을 추가하기 위해서 photoWeb 폴더의 settings.py 파일에 들어가서
INSTALLED_APPS = [] 부분에 photo를 추가하고 ( 끝에 쉼표를 적어주자!)
프로젝트 url 주소를 등록하기 위해 photoWeb 폴더의 urls.py 파일에 들어가서
path('admin/', admin.site.urls), 를 추가한다! (기존에 있으면 작성하지 않아도 된다)
후에 관리자 계정을 생성하기 위한 명령어
python manage.py createsuperuser을 입력하면
아이디와 이메일, 패스워드를 차례대로 입력하면 되는데...
우선 나의 경우에는
django.db.utils.OperationalError: no such table: auth_user 라는 오류가 떴다
auth_user 테이블이 없어서 뜨는 오류인데
python manage.py migrate를 입력한 뒤 다시 관리자 계정을 생성하면 생성이 됐다
Username 에는 사용할 id를 작성하고
Email에는 자신의 이메일을 작성한 뒤
password에는 비밀번호를 입력하면 된다 이때 비밀번호를 입력할 때는 아무것도 나오지 않는 것이 정상이니 당황하지 말고 비밀번호를 잘 입력하면 된다!
후에 y를 누른 뒤 superuser created successfully라는 문구가 뜨면
관리자 계정 생성을 완료한 것이다!
제대로 생성이 됐는지 확인하기 위해서는 다시 한번
python manage.py runserver를 Terminal에 입력한 뒤
받은 http 주소 뒤에 /admin을 추가로 입력하면
이러한 화면이 뜨는데 자신이 설정한 아이디와 비밀번호를 입력한 뒤 로그인!
로그인을 했을 때 이러한 화면이 뜨면 성공한 것이다!
photo > migrations > models.py에 위 코드를 작성한다
Photo라는 클래스는 models의 Model을 상속받는 클래스이며
그 안에 있는 title, author, image, description, created들은
각각 문자열 필드의 최대 글자수가 정해져 있다.
이때 created의 DateTimeField는 날짜 필드로
괄호 안의 auto_now_add=True 은 추가한 시간으로 자동 저장이라는 의미이다
그 밑 def 함수 str(self)는 문자열 함수로
사진을 저장할 때 title 이름을 리턴하도록 정의하였다.
모델을 다 생성했다면 Terminal에
python manage.py makemigrations (모델 변경 내용을 기록해 파일로 만듬) 과
python manage.py migrate (makemigrations에서 생성한 파일을 실제로 실행해 DB에 적용함)를 작성한다
마지막으로 admin 사이트에 Photo 모델을 등록하기 위해
photo > admin.py 파일에서
위와 같이 작성한다
from .models import Photo 현재 파일의 models.py을 불러 Photo 클래스를 호출하고
admin.site.register(Photo) 관리자 페이지에 Photo 모델을 등록한다는 의미이다.
이렇게 작성한 뒤 Terminal에 프로젝트 실행 (python manage.py runserver)을 한 뒤
관리자 페이지로 이동하면
Photo 모델이 등록되어 있는 것을 확인할 수 있다!
우선 이번 주에는 여기까지만 학습하였고 다음 시간에는 django를 이어서 학습할 것 같다!
django 오류가 참 많이 나지만... ^^;; 대부분의 오류가 오타나 들여쓰기 실수로 인해 나타나기 때문에 항상 이 점을 유의하며 작성하면 될 것 같다!!!
이번 주 과제 끄읕~