TIL

[모각코]3일차

1. 오늘 학습한 내용

  • 내부 로직 담당 views 와 디자인 담당 templates. 수정 영역을 줄이기 위해
  • pk값 : db내의 하나의 데이터를 구분할 수 있는 값
  • render() 를 사용하면 loader와 HttpResponse를 import 하지 않아도 된다. render()는 ㄴrequest 객체를 첫번째 인수로 받고, 템플릿 이름을 두번 째 인수로 context사전형 객체를 세번째 (optional) 인수로 받는다 .
  • 404 error. try except을 이용한다.
  • get_object_or_404()
    • 404error의 shortcut
    • 첫번째 인수로 django의 모델을 받는다. 두번째 인수로는 pk값...
  • templates에서 하드코딩 url 제거
    • 하드코딩 :  코드 안에 데이터를 직접 기입하는 것
      • 하드코딩의 장점
        • 1. 값을 바로 확인 가능
        • 2. 별로의 로딩 절차가 없어 속도가 빠르다
        • 3. 데이터 수정 시 코드 수정이 불가피하면 굳이 로딩 할 필요 없다.
      • 하드코딩의 단점
        • 1. 값이 수시로 바뀌는 데이터를 하드코딩한다면, 수정될 때 마다 재컴파일, 재배포 해야 한다.
        • 2. 유지 보수가 어렵다.
      • 정말 바뀌지 않을 것이라고 확신하는 데이터만 하드코딩하거나 데이터가 바뀌면 로직도 같이 바꿔야 하는 상황
    • 템플릿에 링크를 적으면 하드 코딩이 되므로 urls모듈의 path()에서 인수의 이름을 정의했으므로, {% url %} 태그를 사용하면 하드코딩을 피할 수 있다.
  • 여러 앱들의 URL을 구별하기 위해서 urlconf 에 namespace를 추가한다. urls.py 에 app_name을 추가하여 앱의 namespace를 설정 할 수 있다. 
    • Ex) {% url 'detail' question.id %}  -> {% url 'polls:detail' question.id %}
  • (part4){% csrf_token %}위조 요청 방지
  • form
    • html <input type= ,name= , id= ,value= >
  • post method, get method
    • 간단히 말하면 get 방식은 idempotent(연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질) 하므로 서버에게 동일한 요청을 여러 번 전송하더라도 동일한 응답이 돌아온다. 주로 조회를 할 때 사용한다.
    • post 방식은 Non idempotent하므로 서버에 동일한 요청을 여러 번 전송해도 응답은 다를 수 있다. 서버의 상태나 데이터를 변경시킬 때 사용된다 
  • HttpResponseRedirect(url)
    • 지정된 url 페이지로 redirect(url로 이동)
    • reverse()함수로 URL을 하드코딩하지 않도록 한다.

2. 앞으로 할 것

지금까지 본게 아직 감이 안와서 인스타그램을 장고로 클론코딩을 해볼 예정. 그래서 postgreSQL을 설치하고 cookiecutter 프로젝트 생성까지 완료했다.

3. 주절주절

코로나상황이 더 심해지네요. 밖에 나가서 운동도 못하고.. 그래도 화이팅

'TIL' 카테고리의 다른 글

[모각코]6일차  (0) 2021.07.26
[모각코]5일차  (0) 2021.07.23
[모각코]4일차  (0) 2021.07.18
[모각코]2일차  (0) 2021.07.11
[모각코]1일차  (0) 2021.07.08