로그아웃 - sessionid 삭제
로그인 - sessionid 생성
데이터에 세션테이블 존재(djnago_session)
auth_logout(request) 코드한줄로 끝남
로그인도
auth_login(request, form.get_user()) 코드 한줄로 끝남
위 로직은
url로 로그아웃처리가 된다.(get이든 post이든)
이렇게 하면 url로 로그아웃 처리가 되는게 아닌
if 조건문으로 post일때만(로그아웃 버튼을 눌러야) 로그아웃 처리가 가능하게끔 한다.
<장고가 http요청을 처리하는 다양한 방법>
500번 코드
상태코드(100~500번대까지)
100 300 노신경
200, 400, 500 구분하기
200번대 : 성공
400번대 : 실패(클라이언트 잘못으로)
500번대 : 실패(서버 잘못으로)
장고는 서버
->400번대는 괜찮다
500번대는 망한거(서버 잘못)
404 유명 page not found
get_list_or_404()
리스트 여러개를 조회하는데 비어있으면(빈리스트) 404로 보낸다
여러개 조회는 filter()
HTTP 메소드는 웹에서 클라이언트와 서버 간의 통신을 정의하는 방법입니다. 주요 메소드는 다음과 같습니다:
링크텍스트
1. GET
용도: 서버에서 리소스를 요청합니다.
특징: 데이터를 가져오고 서버의 상태를 변경하지 않음. URL에 쿼리 문자열을 포함할 수 있습니다.
예시: 특정 웹 페이지를 요청할 때 사용.
2. POST
용도: 서버에 데이터를 제출합니다.
특징: 주로 폼 데이터를 서버로 보내거나 리소스를 생성하는 데 사용. 응답 본문에 새로운 자원에 대한 정보가 포함될 수 있습니다.
예시: 사용자 등록이나 로그인 시 사용.
3. PUT
용도: 서버의 리소스를 생성하거나 업데이트합니다.
특징: 지정된 URI에 리소스를 새로 만들거나 기존 리소스를 대체합니다. 보통 요청 본문에 리소스의 전체 상태가 포함됩니다.
예시: 특정 사용자의 정보를 업데이트할 때 사용.
4. DELETE
용도: 서버에서 리소스를 삭제합니다.
특징: 지정된 URI의 리소스를 제거합니다.
예시: 특정 게시글이나 사용자를 삭제할 때 사용.
5. HEAD
용도: GET 요청과 유사하지만, 응답 본문 없이 헤더 정보만 요청합니다.
특징: 리소스의 메타데이터(예: 크기, 마지막 수정 시간)를 확인하는 데 유용합니다.
예시: 특정 파일의 존재 여부를 확인할 때 사용.
6. PATCH
용도: 리소스의 일부를 수정합니다.
특징: 전체 리소스를 보내지 않고 필요한 부분만 업데이트합니다.
예시: 사용자의 프로필 사진만 변경할 때 사용.
7. OPTIONS
용도: 특정 URI에서 지원하는 메소드를 확인합니다.
특징: 클라이언트가 서버에서 어떤 HTTP 메소드를 사용할 수 있는지 확인하는 데 사용됩니다.
예시: API의 사용 가능 메소드를 확인할 때 사용.
8. TRACE
용도: 요청이 서버에 도달하는 과정을 추적합니다.
특징: 진단 목적으로 사용되며, 클라이언트가 서버에 보낸 요청을 그대로 반환합니다.
예시: 요청 경로를 디버깅할 때 사용.
9. CONNECT
용도: 클라이언트와 서버 간의 터널을 설정합니다.
특징: 주로 프록시 서버와의 HTTPS 연결을 설정할 때 사용됩니다.
예시: 보안 연결을 설정할 때 사용.
이 외에도 HTTP/2, HTTP/3에서는 추가적인 기능과 메소드가 도입될 수 있지만, 위에서 언급한 메소드들이 가장 일반적으로 사용되는 것들입니다. 각 메소드는 특정한 목적과 특징이 있으니 상황에 맞게 활용하는 것이 중요합니다.
require_http_methods():인자로 리스트[] 넣는다
[]이 안에 있는 함수 외에는 차단한다([]안에 있는 함수만 허용한다)
-복수형(인자로 들어가는 함수개수가 2개이상)
require_POST():POST 요청만 허용
require_GET():GET 요청만 허용
-단수형(함수개수가 1개)
^ 데코레이터 함수 사용 전
^ 사용 후 (from~import~, @~):단수형
^ 사용 후 (from~import~, @~):복수형
405 method not allowed
메인페이지에서 로그인 유무에따라 다른 화면을 보여주려면?
template에서 사용할 수 있는 건
view에서 context로 넘겨준 데이터만 사용 할 수 있다.
장고에는 >>>>>
모든 template에 내가 context를 안 넘겨도
자동으로 넘어오는 context들이 있다.
->모든 template에서 항상 접근 할 수 있는 context들이 장고에 는 있다.
(사전적으로 Anonymous는 익명인)
---->
로그인 했다면
로그인 버튼 사라지기+로그아웃 버튼 보이기,
로그인 안했다면
로그인 버튼 보이기+로그아웃 버튼 안보이기
^ 적용한 코드
로그인한 유저만 글 작성하기
^ 적용한 코드