관리 메뉴

A seeker after truth

231030 월 Day10 - 장고1: 설정, model, timezone 본문

Data/데엔 데브코스 TIL

231030 월 Day10 - 장고1: 설정, model, timezone

dr.meteor 2023. 10. 30. 16:25

몰랐던것, 키포인트 중심 메모 느낌으로 작성

 

1. 프로젝트 & 앱 시작

manage.py는 Django 프로젝트를Terminal에서 조작할 수 있는 명령을 제공. 하나의 프로젝트는 여러 개의 앱으로 구성. 프로그래머스 커뮤니티 사이트로 치면

여기서 홈 스쿨 커리어 커뮤니티 요렇게 각각이 앱이라고 보면 됨. 또 앱이 하나의 플젝에만 속할 수 있는 게 아님. 앱은 하나의 플젝이 아닌 다른 플젝, 다른 사이트에서도 돌아갈 수 있.

 

위와 같이 초이스에 대해 외래키를 만들면, 마이그레이션 시 자동으로 초이스의 아이디에 대해 인덱싱을 한다(=인덱스를 만든다)

 

 

views & urls 간 매핑 후 GET 요청 성공 화면

  • 기본 URL은  메인 폴더의 urls.py를 복사하여 app폴더안에 생성한다. 그리고 path를 통해 어떤 함수를 불러올지 지정한다. path('url주소',views.함수)를 통해 Urlpatterns에 등록한다. 이 의미를 살펴본다면, url주소로 요청이 들어오면 Views에서 함수를 만든다는 뜻이다.
  • 이것은 polls라는 앱의 url경로를 설정한 것이고, 다른 앱을 만들었다면 이런식으로 설정을 진행할 수 있다. 그렇다면 이 앱을 메인 폴더의 urls.py에 등록하는 과정을 거쳐야 한다. django.urls import path, inclue를 통해 include함수를 불러오고 urlpattens 안에서는 path('앱의 기본시작경로',include('polls.urls')를 등록한다.

 

 

2. python manage.py makemigrations app_name

모델의 변경 사항을 담고 있는 마이그레이션 파일을 생성하는 명령어다.

 

페이지 구조를 보려면 "python manage.py sqlmigrate polls 0001" 명령어 사용

 

마이그레이션을 실행해 변경된 내용을 데베에 적용하는 명령어는 "python manage.py migrate".  이렇게 하고 나면 장고에 최종적으로 테이블이 생성된다.

 

 

3. 아래 링크 5번 항목 한번 볼 것(특히 빨간색 주의사항)

https://velog.io/@ssongji/TIL-11%EC%9D%BC%EC%9E%90-%EB%8D%B0%EB%B8%8C%EC%BD%94%EC%8A%A4-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81

 

 

4. admin 페이지는 시스템을 관리하는 관리자들이 데이터를 추가하거나 수정하는 페이지를 말한다.

관리자 생성시 명령어 "python manage.py createsuperuser" 혹은 admin page에서 Superuser, Staff 체크해주면 admin으로 승격시킬 수 있다.

 

 

5. 왜이래?

 

 

6. 타임존은 강의 한번 듣는게 나을듯

- Django에서는 timezone을 사용해서 시간을 구한다. datetime과 출력 값을 보면 다르다는 것을 알 수 있다.

 

<DateTime default 값 설정>

- auto_now = true를 하면 데이터가 저장될 때마다 현재 시간이 저장된다.

- auto_now_add = True를 하면 데이터가 처음 추가될 때 현재 시간이 저장된다.

 

10강 내용 한번더 이해하고 가자

 

 

7. 14강에서

f'[{self.question.question_text}] {self.choice_text}'

이거 뭔지 설명하면서 이야기해주는 부분 있을 듯. 이거 알아보기

 

 

8. 정참조와 역참조 (테이블명_set의 의미)

  • 모델에서 내가 참조하는(외래키로) 모델은 그냥 (객체이름.field이름.참조하는모델의field) 이런식으로 참조가능
  • 단, 역으로 나를 참조하는 모델을 가져올 때는 역참조를 이용해야 한다.
  • 역참조는 테이블명소문자_set 를 입력하면 가능하다.
  • 역참조를 통해서 레코드를 만들 수도 있다. q1.choice_set.create() 이런식으로...

 


[강의 통해 습득할 것]

1. 각 파일이 어떤 역할 하는 파일들인지, 마이그레이션은 뭔지. 마이그레이션은 데베 커밋/롤백 단위 및 모델 생성이랑 관련 있는 듯 한데...

 

2.

path("polls/", include('polls.urls'))

 이렇게 함으로써 일어나는 작용. 저 include 함수 원리, 작용을 모르겠다.

 

3. HttpResponse 클래스 사용법. 지금은 그냥 문자열만 넣고 주고받지만, 실제론 html 파일, 재이쓴 등 활용할 것 같은데.

4. cascade 같은 기본 데베 옵션 까먹어서, 플젝 앞두고 한번 훑는 것 필요