11강
css파일은 디자인 파일만 분리한 것
settings에 STATIC_ROOT 추가
static 폴더에 base.css 파일 생성 후 pragmatic_footer_logo 스타일 저장
base.css 파일을 가져오려면 head에서 불러와야 함
static을 사용하려면 load static을 사용해야 함
장고에서는 static url의 static과 파일을 연결해주는 것입니다.
강의를 따라 스타일을 css 파일로 분리
결과 정상 출력됨
12강
css는 cascading style sheet의 약자
css에서 중요한 부분을 몇 개 볼건데
그 중 하나는 디스플레이 속성입니다
디스플레이 속성에는 블럭, 인라인, 인라인 블럭, 논 속성이 있습니다
블럭은 부모의 최대한의 너비를 모두 가져가면서 블럭 모양의 형태를 가집니다
인라인은 글씨의 높이만큼만 가져가는 속성입니다 (줄 안에 있다)
인라인 블럭은 인라인 인데 블럭의 속성을 가집니다
논은 아무것도 존재하지 않는 것입니다
그리고 시각화 속성에 히든이라는 속성이 있는데
있는데 없는 것처럼 보이게 됩니다.
그 다음으로 중요한 속성은 사이즈입니다
사이즈 지정에 단위가 px, em, rem, %가 있습니다
일단 rem을 저희가 거의 모든 데에 사용할 겁니다
그 이유는 폰트 사이즈랑 연관이 있는데 저희는 웹을 만들 때 반응형으로 만들어야 합니다.
컴퓨터에서 보든 모바일에서 보든 일정하게 볼 수 있어야 합니다.
px은 부모가 어떻든 간에 관계없이 값을 가집니다.
em은 부모가 커지면 자식도 따라갑니다
그런데 em은 부모가 여러 개 있을 때 모두 영향을 받게 되서 잘 쓰지 않습니다
rem은 root HTML에 폰트 사이즈 값이 있는데 이 값을 따라갑니다
%는 바로 위 부모의 크기만 반영합니다
13강
css 파일로 분리하지 않고도 스타일을 따로 적용할 수 있는데 위에 <style>태그를 만들고 css에서 만들 듯이 만들면됩니다
저희가 배운 3가지의 스타일 적용방법에 우선순위가 있는데
가까운 순서대로 우선 순위가 높습니다
실습을 따라 진행하며 em, rem, %에 대한 이해
그리고 디스플레이 종류에 대해 이해
git reset —hard HEAD를 통해 마지막 커밋으로 리셋
14강
장고에서 모델이란 데이터베이스와의 연동을 도와줍니다
예제로 HelloWorld 모델을 상속받아 생성
text 값을 not null로 생성
그리고 아까의 makemigrations 명령어를 입력하면 migrations폴더에 0001_initial.py파일이 생성됩니다
이것은 장고와 데이터베이스를 연결해주는 파일인데 이것만 한다고 연결이 된 것은 아닙니다
DB에 대한 정보는 settings 파일에서 볼 수 있습니다
저희가 지금은 sqlite3를 쓰는데 나중에 변경할 예정이지만 당장은 쓸 것입니다
migrations 폴더에서 파일을 삭제하고 다시 migrate하고 이런 작업은 나중에 문제가 생길 수 있으니 자제하길 바랍니다
되돌릴 수 있는 다른 방법이 있습니다
15강
프로토콜은 기본적으로 규약
우리가 알아야 하는 중요한 메소드는 get, post
겟은 조회를 하는데 사용하는데 파라미터를 넣어줍니다
포스트는 무언가를 새로 만들거나 수정할 때 사용합니다
어떤 사이트를 만들 때 get만 사용하긴 힘들기 때문에 바디 안에 post를 함께 사용합니다
그런데 이걸 가로채서 보면 데이터가 그대로 보입니다
16강
겟은 일반적으로 브라우저에서 주소창에 넣어주면 자동적으로 보내주고
포스트는 따로 설정을 해줘야 합니다
포스트는 html 내부에 폼 필요
폼에서 포스트 방법으로 데이터 전송하는 버튼 생성
장고에서 제공하는 보안 토큰인 csrf_token을 사용해줘야만 포스트가 작동을 합니다
hello_world의 뷰에서 POST방식으로 데이터를 받았을 때 작동하는 request처리
이외의 경우 GET방식으로 처리
결과 정상 출력됨
17강
name이 hello_world_input인 인풋 생성
POST로 입력받은 인풋을 모델에 저장
저장한 모델 객체를 결과로 전달해줌
그리고 html에서 output 객체가 있을 경우에만 text 출력으로 바꿈
결과 정상 출력됨
18강
DB에 저장된 모든 객체를 불러 오기 위해 objects.all()사용
그냥 출력을 하면 query문이 출력되기 떄문에 반복문을 사용해서 출력
f5를 눌렀을 때 똑같은 것이 반복됨
그래서 POST가 작업을 완료한 후에는 GET으로 처리되도록 할 예정
렌더를 없애고 HttpResponseRedirect를 추가 그리고 전에 만들었던 appname을 사용하는데
reverse함수를 통해 주소를 줍니다
결과 정상 출력됨
19강
파이참에선 중단점을 잡고 확인할 수 있도록 하는 디버깅 기능을 제공합니다
Run 메뉴의 edit configurations에서 설정
중단점 설정 후 서버 실행
강의 내용대로 따라해서는 manage.py를 디버그 해도 runserver가 자동으로 안되서 Script 폴더가 아닌 manage.py에 runserver 매개변수를 추가해서 실행함
20강
인증 시스템을 구축할 예정입니다
인증 시스템은 최소한의 보안입니다
CRUD란 Create Read Update Delete로 장고가 CRUD로 유명합니다
CreateView를 상속받아서 AccountCreateView를 만들 겁니다
뷰를 상속받아서 사용하면 생산성과 가독성이 올라가고 복잡성과 시간사용은 줄어듭니다
그래서 이것들을 잘 쓰는 것이 중요합니다