AccessMixin 정리 노트

    Mixin이란? Mixin은 파이썬의 일반적인 개념인데, 기존의 클래스에 어떤 기능을 더해줄 때 쓰입니다. 우리의 경우 mixin을 활용해서 뷰 클래스에 접근 제어 기능을 더해줬습니다. 우리는 django-braces(링크 추가)라는 패키지를 사용했는데요. django-braces는 사실 django에서 사용할 수 있는 다양한 mixin을 제공합니다. 우리는 그중에서 LoginRequiredMixin과 UserPassesTestMixin을 사용해 봤습니다. LoginRequiredMixin LoginRequiredMixin은 로그인이 돼있는 유저만 뷰에 접근할 수 있게 해 줍니다. 로그인 여부를 확인하는 로직이 뷰 로직보다 먼저 실행돼야 하기 때문에 제네릭 뷰 왼쪽에 씁니다. class MyView(Lo..

    [Django]allauth URL & 유용한 세팅들🔎

    'signup/' 'account_signup' 회원가입 페이지 'login/' 'account_login' 로그인 페이지 'logout/' 'account_logout' 로그아웃 페이지 (ACCOUNT_LOGOUT_ON_GET = True 사용시 바로 로그아웃 됩니다. ACCOUNT_LOGOUT_ON_GET은 settings.py 파일에서 설정합니다. 'allauth 유용한 세팅들 정리' 노트를 참고하세요!) 'confrim-email//' 'account_confirm_email' 이메일 인증 페이지 (ACCOUNT_CONFIRM_EMAIL_ON_GET = True 사용시 바로 인증 완료 됩니다.) 'password/change/' 'account_change_password' 비밀번호 변경 페이지 ..

    Django Class-Based Views(클래스형 뷰)🧡

    클래스형 뷰란? (Class-Based Views) - 개발자들이 자주 쓸만한 view를 클래스로 만들어 준 것 클래스형 뷰 구현하기! ⚒ *기존의 함수형태 def page_create(request): if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): new_page = form.save() return redirect('page-detail', page_id=new_page.id) else: form = PageForm() return render(request, 'diary/page_form.html', {'form': form}) ⬇️ *클래스형 뷰로 변경 한 상태 class PageCreateView(Vi..

    pagination 구현하기📝

    View 구현하기 먼저 Paginator를 import 합니다.from django.core.paginator import Paginator page_list 뷰에 Paginator를 생성합니다. Paginator는 첫 번째 파라미터로 페이지를 나눌 데이터 목록을, 두 번째 파라미터로는 한 페이지에 표시할 데이터의 개수를 받습니다. def page_list(request): object_list = Page.objects.all() paginator = Paginator(object_list, 8) # Paginator 생성 return render(request, 'diary/page_list.html', {'object_list': object_list}) 현재 보여줄 페이지의 번호를 쿼리스트링으로 ..

    Django 페이지네이션(Pagination)🗒

    페이지네이션(Pagination) 페이지네이션이란 데이터를 일정 길이로 나누어서 전달하는 기능입니다. 일반적으로 가지고 있는 데이터가 한 화면에 모두 보여 주기에 너무 많은 경우 사용하죠. 우리가 여러 웹 페이지에서 '이전 페이지로 가기' 또는 '다음 페이지로 가기' 등으로 자주 볼 수 있는 기능입니다. 페이지네이션은 프론트엔드와 백엔드에서 모두 구현이 필요합니다. 백엔드에서는 페이지 별 데이터를 데이터베이스로부터 가져와서 프론트에게 넘겨 주어야 하고 프론트엔드에서는 받은 데이터 목록과 페이지에 대한 정보를 화면에 표시하도록 만들어 주어야 합니다. Django의 페이지네이션 Django는 페이지네이션을 쉽게 구현할 수 있도록 하는 Paginator를 제공합니다. Paginator는 총 두 개의 파라미터만..

    seed data(씨드 데이타 만들기)🌈🌻

    pip를 이용해서 'django-seed'를 설치해 주세요. pip install django-seed django-seed를 사용하기 위해서는 settings.py의 INSTALLED_APPS 항목에 'django_seed'를 추가해 주어야합니다. # settings.py ... # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'diary', 'django_seed', # 추가합니다. ]..