WEB/Django concept 114

[Django][Authentication System1] Template에서 인증 관련 데이터 출력하기

▶ Template with Authentication data 템플릿에서 인증 관련 데이터를 출력하는 방법 ▶ 현재 로그인 되어있는 유저 정보 출력하기 user라는 context 데이터를 사용할 수 있는 이유는? 장고가 미리 준비한 context 데이터가 존재하기 때문이다 (context processors) ▶ context processors 장고에서 자주 사용하는 데이터 목록을 미리 템플릿에 로드해 둔 것 템플릿이 렌더링 될 때 호출 가능한 컨텍스트 데이터 목록 작성된 컨텍스트 데이터는 기본적으로 템플릿에서 사용 가능한 변수로 포함된다

WEB/Django concept 2024.04.20

[Django][Authentication System1] 로그인 == 세션을 만드는 과정

▶ Login 로그인 Session을 Create 하는 과정 ▶ AuthenticationForm() 로그인 인증에 사용할 데이터를 입력받는 built-in form * Github 참고 https://github.com/django/django/blob/main/django/contrib/auth/forms.py#L286 django/django/contrib/auth/forms.py at main · django/django The Web framework for perfectionists with deadlines. - django/django github.com ▶ 로그인 페이지 작성 ▶ login(request, user) AuthenticationForm을 통해 인증된 사용자를 로그인하는 함수..

WEB/Django concept 2024.04.20

[Django][Authentication System1] 인증 시스템, User Model 대체하기

▶ Authentication 인증 사용자가 자신이 누구인지 확인하는 것 일종의 신원확인 ▶ Django Authentication System 인증 시스템 사용자 인증과 관련된 기능을 모아 놓은 시스템 장고가 기본적으로 제공하는 User model이 아닌 우리가 직접 작성한 User model을 사용하기 위해서 기존의 User model을 새롭게 대체한다. 우리는 지금까지 별도의 User 클래스 정의 없이 내장된 auth 앱에 작성된 User 클래스를 사용해싿. 별도의 설정 없이 사용할 수 있어서 간편하지만, 개발자가 직접 수정할 수 없다는 문제가 생긴다 AbstractUser 클래스를 상속받는 커스텀 User 클래스 작성 기존 User 클래스도 AbstractUser를 상속받기 때문에 이렇게 하면 커..

WEB/Django concept 2024.04.20

[Django][Authentication System1] Cookie & Session

▶ 문제 우리가 서버로부터 받은 페이지를 둘러볼 때 우리는 서버와 서로 연결되어 있는 상태가 아니다 HTTP의 특징은 비 연결을 지향한다는 것과, 무상태라는 것이다. * HTTP HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 규약 웹(WWW)에서 이루어지는 모든 데이터 교환의 기초이다 비 연결 지향 (connectionless) 무상태(stateless) 서버는 요청에 대한 응답을 보낸 후 연결을 끊는다 연결을 끊는 순간 클라이언트와 서버 간의 통신이 끝난다 상태 정보가 유지되지 않음 ex) 장바구니에 담은 상품을 유지할 수 없음 로그인 상태를 유지할 수 없음 => 상태를 유지하기 위한 기술이 필요하다 ▶ 쿠키 (Cookie) 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각 클라이언트..

WEB/Django concept 2024.04.20

[Django][Static Files] Media files

▶ Media files 사용자가 웹에서 업로드하는 정적 파일 user-uploaded ▶ 미디어 파일 제공을 위한 사전 준비 1.settings.py에 MEDIA_ROOT, MEDIA_URL을 설정한다 MEDIA_ROOT MEDIA_URL 실제 미디어 파일들이 위치하는 디렉토리의 절대 경로 MEDIA_ROOT에서 제공되는 미디어 파일에 대한 주소를 작성한다 (STATIC_URL과 동일한 역할을 한다) 2. 작성한 MEDIA_ROOT와 MEDIA_URL에 대한 url을 지정한다 settings.MEDIA_URL settings.MEDIA_ROOT 업로드 된 파일을 제공하는 URL MEDIA_URL을 통해 참조하는 파일의 실제 위치

WEB/Django concept 2024.04.20

[Django][Static Files] 정적 파일, STATIC_URL

▶ Static Files 정적 파일 서버 측에 고정적으로 제공하는 파일 (변경하지 않음) ex) 이미지, JS(자바스크립트), CSS 파일 등 ▶ 서버와 URL 웹 서버의 기본동작은 특정 위치(URL)에 있는 자원을 요청 받아서 (HTTP request) 응답(HTTP response)을 처리하고 제공하는 것 이는 "자원에 접근 가능한 주소가 있다"라는 의미이다. 웹 서버는 서버에 존재하는 정적 자원을 요청 받은 URL로 제공한다 => 때문에 정적 파일을 제공하기 위한 경로(URL)이 있어야한다. ▶ STATIC_URL 기본 경로 및 추가 경로에 위치한 정적 파일을 참조하기 위한 URL이다 => 실제 파일이나 디렉토리가 아니며, URL로만 존재한다 정적 파일을 제공하려면 요청에 응답하기 위한 URL이 ..

WEB/Django concept 2024.04.20

[Django][Form] is_valid(), save()

▶ is_valid() 여러 유효성 검사를 실행하고, 데이터가 유효한지의 여부를 Boolean으로 반환한다 ▷ 공백 데이터가 유효하지 않은 이유 1. 별도로 명시하지 않았지만, 기본적으로 모델 필드에는 빈 값을 허용하지 않는 제약조건이 설장되어 있다. 2. 빈 값은 is_valid()에 의해 False로 평가된다. form 객체에는 그에 맞는 에러 메세지가 포함되어 다음 코드로 진행된다. ▶ save() 데이터베이스 객체를 만들고 저장한다 save() 매서드는 키워드 인자 instance가 있는지 없는지를 보고 생성을 할지 수정할지를 결정한다

WEB/Django concept 2024.04.20