이번주 회고
- 과제를 진행하며 막혔던 부분 & 알게된 것
- 새 터미널을 자주 열면 안된다는 것(새 터미널은 연다는 것은 게임을 다시 키는 것과 같은 것이기 때문에 전에 적용한게 똑같이 적용된다는 보장이 없다!)
- 프로젝트 구조
- user앱- 사용자 관리 ( 회원가입/로그인/로그아웃)을 담당
- tweet앱 - 글 관리( 글쓰기, 삭제, 수정, 댓글)을 담당
- views.py - url에서 어떤 역할을 할 건지, 어떤 기능을 수행할 건지 만들어주는 공간
- urls.py - 사용자가 어떤 주소로 접근할 수 있게 정해주는 공간
- user / models.py - 사용자 이름, 비밀번호, 상태 메세지, 생성일
- django 모델 필드의 종류
- 문자열 : CharField, TextField
- 날짜/시간: DateTimeField, DateField, TimeField
- 숫자 : IntegerField, FloatField
- 다른 테이블과 연관을 지어 줄 때 : ForeignKey
- 모델을 만든 후 데이터베이스에 넣기
- python manage.py makemigrations : 데이터베이스 변경을 알려주는 명령어
- python manage.py migrate : 변경된 데이터베이스를 적용시켜주는 명령어
- Django ORM / QuerySet
- Django ORM 이란?
- 데이터베이스를 하나의 '객체(object)'로 보고, SQL 쿼리문 없이 데이터베이스의 데이터들을 다룰
수 있게 하는것
- 데이터베이스를 하나의 '객체(object)'로 보고, SQL 쿼리문 없이 데이터베이스의 데이터들을 다룰
- 쿼리셋(QuerySet) 이란?
- 전달받은 모델의 객체 목록을 말한다. 예를들어, person.objects의 의미는 objects라는 객체가 person이라는 데이터베이스를 쿼리셋 형태로 만들겠다는 의미이다. 쿼리셋은 '객체' 이지만 일반적인 객체에서 사용하는 속성(객체.변수 / 객체.함수()와 같은 속성)들을 사용할 수 없다. 쿼리셋은 데이터베이스의 여러 레코드(row)를 나타낸다.
- QuerySet Method
- .filter()
- 특정 조건에 맞는 Row만 조회하고 싶을 때 사용. QuerySet 타입으로 반환
exist_user = UserModel.objects.filter(username=username)
- .get()
- 하나의 Row만 조회한다. .get()은 QuerySet 타입이 아닌 객체 타입으로 반환하기 때문에 뒤에 다른 메소드를 추가 할 수 없다.
- 값이 없을 때는 DoesNotExist 에러를 발생시킨다.
- 값이 한 개가 아닐 경우에는 MultipleObjectsReturned 에러를 발생시킨다.
- .filter()
- Django ORM 이란?
- {% ... %}
- 템플릿 문법으로써 중복해서 html을 계속 작성하지 않아도 되도록 도와주고 html 파일에 파이썬의
기능들을 추가해 줄 수 있도록 도와주는 기능
- 템플릿 문법으로써 중복해서 html을 계속 작성하지 않아도 되도록 도와주고 html 파일에 파이썬의
이번주를 진행하며 느낀점
미니 프로젝트를 진행할 때 백엔드 부분이 너무 어려웠는데 이번 장고 기초를 배우면서 어느정도 이해할 수 있게 되었다. 하지만 장고의 기본 모듈기능이 너무 많아서 아직 어디에 어느식으로 써야할지 감이 잘 안잡힌다... 다음주 팀프로젝트를 하며 더 가까워지기를 바랄수 밖에 없을꺼같다
이번주 목표 달성 여부
-
알고리즘 & 장고 기초 공부하기- 팀과제때 진행했던 코드를 최대한 줄여보기
팀원과 소통 열심히 하기
다음주 목표
- 팀프로젝트 진행하기
- 팀원과 각자의 역할 설정 잘 나누기
- 개인과제 해설 완벽하게 이해하기