no image
[DB with Django] N:1 (Comment-Article)
1:N 관계의 모델을 Django를 통해 실습을 해보며 이해해보자! 목차 Django Relationship fields 종류 Comment Model 관계 모델 참조 Comment 구현 Comment 추가사항 1. Django Relationship fields 종류 OneToOneField() A one-to-one relationship ForeignKey() A many-to-one relationship ManyToManyField() A many-to-many relationship OneToOneField()에 대해서는 저번에 알아보았고, ManyToManyField()에 대해서는 다음에 알아보자. 이번엔 ForignKey()에 대해 알아보고 댓글 기능으로 넘어갈 것! ForeignKey(t..
2022.10.12
no image
[Django] Limiting access to logged-in users
앞서 회원가입, 로그인 등에 알아볼 수 있었다. 이번 글에서는 로그인 사용자에 대한 접근 제한에 대해 알아보자. 로그인 사용자에 대해 접근을 제한하는 방법은 아래 두 가지가 있다. The raw way is_authenticated attribute The login_required decorator 목차 is_authenticated attribute The login_required decorator 1. is_authenticated attribute User model의 속성(attributes) 중 하나 사용자가 인증되었는지 여부를 알 수 있는 방법 모든 User 인스턴스에 대해 항상 True인 읽기 전용 속성 AnonymousUser에 대해서는 항상 False 일반적으로 request.user..
2022.10.05
no image
[Django] Authentication with User
로그인과 로그아웃의 로직을 이해했다면, 이제 유효한 데이터를 저장하기 위한 회원가입에 대해 알아보자. User Object와 User CRUD에 대해 이해할 수 있을 것이다. (회원 가입, 회원 탈퇴, 회원정보 수정, 비밀번호 변경) 목차 회원가입 Custom user & Built-in auth forms 회원 탈퇴 회원정보 수정 비밀번호 변경 1. 회원 가입 Login과 Logout이 Session에 대한 과정이었다면, 회원가입은 User를 Create하는 것이며 UserCreationForm built-in form을 사용한다. UserCreationForm 주어진 username과 password로 권한이 없는 새 user를 생성하는 ModelFrom 아래 3개의 필드를 가진다. username ..
2022.09.19
no image
[Django] Authentication in Web requests
웹 요청에 따른 인증 및 권한을 알아보기 전에 Django가 제공하는 built-in forms를 익히자 https://docs.djangoproject.com/en/3.2/topics/auth/default/#module-django.contrib.auth.forms Using the Django authentication system | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate docs.djangoproject.com 목차 Login Authentica..
2022.09.19
no image
[Django] HTTP Cookies
앞서 AUTH_USER_MODEL에 대해 설정을 마쳤다면, 이제 로그인과 로그아웃을 이해하기 전 반드시 알아야 하는 HTTP Cookies를 알아보자. 목차 HTTP Cookie Session 1. HTTP 인터넷을 사용하며 url 제일 앞에 붙어있는 것을 많이 봤을 것이다. Hyper Text Transfer Protocol HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜 (규칙, 규약) 웹(WWW)에서 이루어지는 모든 데이터 교환의 기초 클라이언트 - 서버 프로토콜이라고도 부름 요청과 응답 요청(requests) 클라이언트(브라우저)에 의해 전송되는 메시지 응답(response) 서버에서 응답으로 전송되는 메시지 특징 비 연결 지향(connectionless) 서버는 요청에 대한 응..
2022.09.19
no image
[Django] Authentication System
홈페이지를 구성하며 CRUD를 다루는 방법을 배웠는데, 보통 일반인이 들어가서 CRUD를 하기 위해서는 회원가입의 절차가 필요하다. 우리는 관리자로서 인증된 User에게 권한을 부여하여 우리의 서비스를 이용하게 해준다. 목차 authentication system Substituting a custom User model 과정 db 초기화 1. authentication system 인증(Autentication)과 권한(Authorization) 부여를 함께 제공(처리)하며, 이러한 기능을 일반적으로 인증 시스템이라고 함 필수 구성은 settings.py에 이미 포함되어 있으며 INSTALLED_APPS에서 확인 가능 django.contrib.auth Authentication(인증) 신원 확인 사용..
2022.09.18
no image
[Django] Allowed HTTP methods
목차 1. 데코레이터(Decorator) 2. allowed HTTP methods 1. 데코레이터(Decorator) view 함수를 작성했다면 이번에는 View decorator라는 것을 이용하여 단단하게 만들어주자. 기존에 작성된 함수에 기능을 추가하고 싶을 때, 해당 함수를 수정하지 않고 기능을 추가해주는 함수 Django는 다양한 HTTP 기능을 지원하기 위하여 view 함수에 적용할 수 있는 여러 데코레이터를 제공한다. 위 코드에서 보이듯이 내부 수정이 아닌 `@hello`을 통하여 기능 추가를 해준 것을 출력을 통해 확인할 수 있다. 이런 데코레이터를 이용하여 단단하게 만드는 것이 어떤 것인지 알아보자! 2. Allowed HTTP methods django.views.decorators.h..
2022.09.06
no image
[Django] Handling HTTP requests
form, Modelform을 통하여 view 함수의 변화를 배워왔는데 가장 중요!! 한 것은 로직, 즉 순서를 잘 지키면서 이해한 상태로 작성하자는 것이다. 암기가 아닌 이해가 필요한 과목이다. 이번 글에서는 "HTTP requests 처리에 따른 view 함수 구조 변화"를 알아보자. 목차 1. HTTP requests 2. CREATE 3. UPDATE 1. HTPP requests 앞에서 작성하였던 new-create, edit-update의 view 함수 역할을 잘 살펴보면 하나의 공통점과 하나의 차이점이 존재한다. 공통점 new-create는 모두 CREATE 로직을 구현하기 위한 공통 목적 edit-update는 모두 UPDATE 로직을 구현하기 위한 공통 목적 차이점 new와 edit는 G..
2022.09.06
no image
[Django] ModelForm
앞서 Form Class를 작성해보며 느낄 수 있었던 것은 "Model이랑 중복되는 부분이 너무 많다"라는 것이었다. 우리는 이미 Article Model Class에 필드에 대한 정보를 작성하였는데 이를 Form에 맵핑하기 위하여 Form Class를 재정의 해야만 하였다. 목차 1. ModelForm 2. ModelForm with view Functions 3. Form과 ModelForm 비교 4. Widgets 활용하기 1. ModelForm ModelForm을 사용하면 위에서 말했던 중복되는 부분들을 제외하고 Form을 더 쉽게 작성할 수 있게 해 준다. Model을 통해 Form Class를 만들 수 있는 helper class ModelForm은 Form과 똑같은 방식으로 View 함수에서..
2022.09.06