(2022.10.24) Today I Learned_Day-37

imRound·2022년 10월 24일
0
post-thumbnail

Default값을 넣을 때 Media파일을 통하여 만들었는데, gitignore에는 Media가 들어가 있어, Default 값의 사진을 넣지 못했다.

static은 gitignore에 안넣고 static >> 관리되는 폴더 (기본 이미지 등을 관리하는 폴더로 많이 사용한다. 관리자가 추가하는 것)

이용자들이 static에 들어 갈 필요가 없다.

{% if user.image == "profile/default_profile.png" %}
<img class="profile_img"
src="static/default_profile.png">
{% else %}
<img class="profile_img"
src="{{user.image.url}}">
{% endif %}

Default값을 지정해주기 위하여 Static 파일에 Default을 주고 싶은데, Media에 있었던 사진들은 git push시 gitignore에 의해 git push가 되지 않았다.
그 후

{% load static %}
<!doctype html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

static에서 파일이 불러와지지 않아서 django 공식 문서를 찾아보다가 html 내에

{% load static %}를 넣어주니 static에 있던 default파일이 정상적으로 출력되었다!!

  • HTTP - HTTP의 다양한 헤더들 살펴보기

    HTTP Response Staus Code

    1. Informational responses (100 - 199) 정보

    2. Successful responses ( 200 - 299 ) 성공

    3. Redirection responses ( 300 - 399 ) 다른 곳 가세요

    4. Client error responses ( 400 - 499 ) 요청 잘못 됐을 떄

    5. Server error responses ( 500 - 599) 서버 잘못 됐을 때

      1xx

      요청이 수신되어 처리 중 ⇒ 거의 사용 되지 않는다.

      2xx

      요청 정상 처리

    • 200 OK

    • 201 Created

      • Header에 Location을 추가해서 새로운 리소스의 URI를 알려줄 수 있다.
    • 202 Accepted

      • 요청은 접수했다.
    • 204 No Content
      - save 버튼을 눌러서 저장만 하고 화면 변화가 필요 없을 때

      보통 200, 201만 쓴다. 개발 팀끼리 협의 함

      3xx

      추가 행동 필요

    • 웹브라우저는 3xx의 해더에 Location 이 있으면 자동으로 Redirect 한다.

    • 영구 Redirect: 영구 이동. 메소드와 바디가 바뀌는 301과 안 바뀌는 308이 있다.

    • 일시 Redirect: 일시적 변경. 주문완료 후 주문 내역으로 이동
      - 302: Redirect 시 메소드는 GET으로. 본문은 제거
      - 307: Redirect 시 메소드와 본문 유지
      - PRG(Post/Redirect/Get)
      - Post 주문 후 새로고침 시 중복 주문이 가능하다.
      - 주문 완료 시 302를 줘서 Redirect 시키면 새로고침 해도 결과 화면만 다시 요청한다.

      4xx (중요!)

      클라이언트 에러

    • 잘못된 문법! 오류의 원인이 클라이언트에 있다.

    • 400: 요청 내용을 다시 검토해야 한다. API 스펙이 맞는 지를 확실히 해야 한다. (회원가입에 어떤 것들을 넣어야하는데 오타나 누락되었을 때)

    • 401: 인증이 안됨 (로그인이 안되어있다.)

    • 인증 VS 권한: 인증은 로그인이 안됐다. 권한은 내가 운영자가 아니다! Authentication vs Authorization

    • 오류는 Unauthorized로 그냥 쓰고 있다. (이름이 아쉽다.)

    • 403: 권한이 없다. (로그인 회원 중 운영진이 아닐 때)

    • 404: 리소스가 없다. or 숨기고 있다.

      5xx

      서버 에러

    • 복구 후 재 시도 시 성공 가능하다.

    • 500: 서버 내부 문제

    • 503: 서버가 일시 과부하

      백엔드 로직 잘못 짰나? print문 써보고 잘 돌아가고 있는 지 확인해보기!

      코드들 필수적인 것들은 숙지 하는 게 편리하고 정확하게 돌려주면 프론트엔드 사람들이 좋아한다!

profile
Django 개발자

0개의 댓글