Model
장고의 모델은 클래스로 정의. Article 테이블을 생성했다고 생각하면 된다.
내가 사용할 컬럼들은 Field로 정의해주면 된다.
ex) title은 CharField로 설정, 이 특징은 문자열 필드이면서 길이제한이 반드시 필요함.
필요한 필드는 장고 문서에서 참조하며 사용하면 될듯.
Migration
DB는 우리가 파이썬 코드로 모델을 작성한 사실을 알지 못함.
우리는 DB에 변경할 내용을 Migration 단위로 반영해 주어야 한다.
Migration을 통해 우리가 작성한 모델의 변경사항, 즉 코드를 DB에 실제로 반영하게 되는 것.
python manage.py makemigrations
model에 생긴 변경사항을 migration으로 만드는 과정.
python manage.py migrate
마이그레이션을 실제로 데이터에 반영해서 동기화 하는 과정.
예를 들어 방금 Article 모델을 생성한 것 역시 모델의 변경사항이 되는 것이고,
1. migration 파일로 만든 후
2. migrate 명령어를 통해 반영을 해주면
3. 그제서야 DB에 우리가 만든 Article 모델이 반영되는 것
데이터베이스 확인
명령 팔레트(ctrl+shift+p) 에 sqlite 입력 -> SQLite: Open Database -> db.sqlite3(지금 쓰고있는 db 파일)
왼쪽 하단에 SQLITE EXPLORER 생성되면 끝.
*참고로 id는 자동으로 생기는 필드.
ORM(Object-Relational-Mapping)
파이썬으로 DB를 조작할 수 있게 해줌.
즉 SQL 안쓰고도 python으로 DB를 조작할 수 있다는 것.
초기 설정
편의성을 위해 패키지 설치
1. pip install django-extensions
django-extension은 settings.py에서 앱 등록 과정이 필요
2. pip install ipython
새로운 패키지를 설치했다? -> requirements에 추가해줘야 함
3. pip freeze > requirements.txt
패키지 설치 완료, 이제는 실행해보자
우리는 현재의 django 프로젝트 환경을 shell로 접근할 수 있어야 함.
python manage.py shell_plus
이제 시작하면 됨.
장고 ORL 사용하는 법
모델이름.objects.all()
CRUD 하는 부분은 1-13 영상 및 강의자료 참고하자.
MTV 사용
1. view에서 model에 접근해 모든 아티클 가져오기
2. view에서 가져온 아티클을 template로 넘기기
3. template에서 넘어온 context 보여주기
MTV CR 부분은 1-14 영상 보고 다시 복습하자
GET & POST
우리가 DB에 변화를 주는 Create, Update, Delete를 하는 과정에서는 GET을 사용하는 것이 올바르지 않다.
GET은 DB에 변화를 주지 않는, 즉 Read에 해당하는 요청으로써 사용되어야 하는 것.
그렇기 때문에 new.html의 폼 내부 method를 GET이 아닌 POST로 바꿔야 함.
method='POST'로 바꿔주고,
CSRF Token을 제공하기 위해 {% csrf_token %}을 추가로 입력해주어야 함.
create 뷰 역시 request.GET.get에서 request.POST.get으로 바꿔줘야 한다.
오늘의 회고
양이 많다. 그래도 오늘은 코드카타, 특강, 강의 진도까지 나갔다.
15강까지가 목표였는데 실패..
내일의 목표는 2시 특강 + 진도 1-17까지 해보자
'매일 TIL' 카테고리의 다른 글
[내일배움캠프 8-4일] 로그인&로그아웃 구현하기, 404 처리, 데코레이터 (4) | 2024.08.15 |
---|---|
[내일배움캠프 8-3일] Django MTV(RUD), Django Form, URL Namespace (0) | 2024.08.14 |
[내일배움캠프 8-1일] HTML form, Variable Routing, Multiple Apps, Naming URL Patterns (0) | 2024.08.12 |
[내일배움캠프 7-5일] context, 템플릿 필터, 템플릿 태그, 템플릿 상속, 커스텀 템플릿 (0) | 2024.08.09 |
[내일배움캠프 7-4일] 파이썬 장고 실무 기초 (0) | 2024.08.08 |