Python 18

[DRF] 게시판에 Authentication과 Permission 적용하기

게시판을 작성하는데 있어서 유저가 로그인이 되어있는지 아닌지를 구별해줄 필요성이 있다. 익명 게시판이 아닌경우에는 글을 작성하는 사용자가 로그인 상태인지를 확인해야 하는데 이때 사용하는 개념이 authentication과 permission이다. ✅ Authentication 먼저 authentication에 대해 먼저 알아보면 authentication은 인증이라는 뜻으로 특정 서비스를 사용하는 데 있어 사용자의 신원(회원/비회원/관리자 등)을 확인하는 절차를 의미한다. 즉, user의 id와 password를 확인하는 것이라고 생각할 수 있다. Django의 REST Framework authentication의 종류로는 크게 5가지가 있다. 1. BasicAuthentication HTTP 제어 h..

Python/DRF 2023.01.29

[DRF] 게시판 기능(CRUD) 구현하기

이전에 ViewSets을 하면서 models.py에 아래와 같이 title과 body field를 생성했었다. from django.db import models from django.conf import settings # Create your models here. class Blog(models.Model): title = models.CharField(max_length=100) body = models.TextField() 하지만 블로그에는 이보다 더 많은 기능이 필요하기 때문에 기능을 더 추가하는 코드를 작성해보고자 한다. 게시글의 id값, 제목, 작성일, 작성자, 본문을 추가하는 코드는 다음과 같다. ✅ models.py from django.db import models from djang..

Python/DRF 2023.01.17

[DRF] 커스텀 유저 구현하기(회원가입/로그인)

Django에서는 기본적으로 사용자 모델인 User 모델을 제공하고 있다. 하지만 임의로 원하는 필드(Nickname, birthday 등)을 가진 사용자 모델을 사용하기 위해서는 custom user 모델을 구현해야 한다. custom user 모델을 구현하기 위해서는 BaseUserManager과 AbstractBaseUser 클래스를 상속받아서 새롭게 구현해야 한다. 여기에서 BaseUserManager는 유저를 생성하는 역할을 하는 헬퍼 클래스이고, AbstractBaseUser는 실제 모델이 상속받아 생성하는 클래스이다. 유저생성을 위해 accounts라는 이름의 앱을 생성해준다. python manage.py startapp accounts ✅ settings.py 앱을 생성 후 setting..

Python/DRF 2023.01.14

[DRF] Generic CBV로 CRUD 구현하기

APIView와 Mixins를 사용한 CRUD는 불필요한 중복이 발생했었다. 이번에는 Generic CBV (Class Based Views)의 상속을 통해 코드의 중복을 좀 더 줄여보고자 한다. ✅ models.py from django.db import models from django.conf import settings # Create your models here. class Blog(models.Model): title = models.CharField(max_length=100) body = models.TextField() 이전에 사용했던 모델과 동일하게 만들어준다. ✅ serializers.py from .models import Blog from rest_framework import ..

Python/DRF 2023.01.12

[DRF] APIView로 CRUD 구현하기

APIview의 기본적인 골격은 아래와 같다. class Class_name(APIView): def method_name(self, request, format=None): # 해당 HTTP method를 어떻게 동작시킬지 정의 method_name으로는 HTTP method인 get, post, delete 등이 존재한다. APIView를 상속 받아서 원하는 기능을 구현하기 위한 HTTP method를 구현하면 된다. ✅ models.py from django.db import models from django.conf import settings # Create your models here. class Blog(models.Model): title = models.CharField(max_leng..

Python/DRF 2023.01.12

Jupyter Notebook 설치, 검은 화면 실행 오류 해결 법

지금까지 파이썬을 공부하면서 사용하기 쉽고 코드 보기가 편해서(+있어보여서) Visual Studio 코드를 주로 사용했는데 인터넷 강의를 보면서 주피터 노트북의 필요성을 느꼈다. 주피터 노트북의 장점은 크게 3가지 인 것 같다. 1. 코드를 쪼개서 실행할 수 있음 2. 노트북이라는 대화형 문서에 자료 등을 결합해 공유하고 재사용 및 작업하기 유용하다. 3. 데이터 시각화 아직까지 코린이기 때문에 2번 3번은 나에게 필요없었고 1번의 필요성을 느껴서 지금 당장 설치하기로 했다. 1. 주피터 노트북 설치방법 주피터 노트북 설치방법은 유튜브나 블로그 등 인터넷에 엄청나게 자료가 많기 때문에 검색해서 설치했다. https://zidarn87.tistory.com/314 파이썬 주피터 노트북 설치 (jupyte..

Python 2022.05.17
728x90