본문 바로가기

반응형

Backend/Python

(17)
[DRF] JWTAuthentication Errors 1. 기본 인증 클래스 변경시ImportError: Could not import 'MunDeuk.startService.addon.JWTAuthentication.JWTAuthentication' for API setting 'DEFAULT_AUTHENTICATION_CLASSES'. ImportError: Module "MunDeuk.startService.addon.JWTAuthentication" does not define a "JWTAuthentication" attribute/class. ➡️ 주로 모듈 경로 또는 클래스 정의가 잘못되었을 때 발생한다.프로젝트 구조가 아래와 같고 JWTAuthentication.py안에 JWTAuthentication.class가 있는 경우를 예로 들었다.p..
[drf] JWT인증 추가 JWT인증 하는 방식을 추가 구현하여 보안을 높이려고 하였다.Java와는 다르게 기본적인 보안을 적용하기 용이했다.쿼리를 별도로 작성하지 않고 메서드를 통해 중복확인과 비밀번호 해시화를 기본 메서드를 이용해 작성할수있었다.하지만 인증을 진행하기 위해서는 그런 부분을 만족시킨 상태에서 인증이 진행되어야 했기에 처음 구현시 이 부분을 알지 못해 원하는 동작을 이끌어 내지 못했다.csrf도 drf에서 기본적으로 제공되어 jwt를 쿠키에 담아 인증하도록 구현했다.password 확인시 동일하게 나오는데 check_password는 통과하지 못했다. 찾아보니 auth를 사용하면 hash화를 시켜줘야 하게 되는데 기본적으로 그냥 string으로 저장하게 되어 이런 일이 생겼다고 한다.따라서 회원가입 로직부터 변경해..
[DRF] Django Rest Framework (1-2) Null vs BlankNull=True는 값이 없어도 된다는 것을 의미Blank=True는 공백이라도 존재해야 한다는 것을 의미 Serializers VS Forms SerializerForm정의DRFDjango목적API-데이터 간 변환처리HTML폼 생성, 폼데이터 검증 및 처리동작인스턴스-JSON 간의 직렬화 및 역직렬화폼 렌더링하고 제출된 데이터 검증 모델 필드의 값 제한(like Java's Enum)from django.db import modelsclass Member(models.Model): class MemberAuth(models.TextChoices): USER = 'USER', 'User' ADMIN = 'ADMIN', 'Admin' GUE..
[DRF] Django Rest Framework (1-1) 기능 구현Member CRUDLogin 기능 - 이메일, 비밀번호 검증Api문서 자동화 - drf_yasg이용 gitHub : https://github.com/DerekYook/MunDeuk_py GitHub - DerekYook/MunDeuk_py: MunDenk ver.pythonMunDenk ver.python. Contribute to DerekYook/MunDeuk_py development by creating an account on GitHub.github.com  웹페이지는 template를 이용해 form으로 데이터를 주고 받는 식으로 작성했다. 현재 프로젝트 디렉토리 구조projectName/├── env/├── projectName/| ├── __init__.py| ├── ..
[DRF] Django Rest Framework (1) 기본 구조 세팅AppSetting1. apps.py 확인from django.apps import AppConfigclass StartserviceConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'MunDeuk.startService' 2. serializers.py 생성from django.contrib.auth.models import Group, Userfrom rest_framework import serializers# 데이터 표현 (Spring의 DTO와 유사한 느낌)# => 쿼리셋, 모델 인스턴스와 같은 복잡한 데이터를 JSON, XML과 같이 간단한 데이터로 변환하는 것이라고 한다.cla..
[DRF] Django Rest Framework (0) Python - Django를 이용해 MunDeuk서비스를 리팩토링 해보려고 한다.Step은 크게 두가지로 잡았다.1. 단순 회원가입 및 로그인 구현2. JWT, OAuth2, CSRF를 이용한 보안 기능 활성화 Python은 처음 다뤄보기 때문에 일단 공식 홈페이지의 Quickstart로 프로젝트를 생성해 보았다.홈페이지 : https://www.django-rest-framework.org/tutorial/quickstart/#quickstart Quickstart - Django REST frameworkWe're going to create a simple API to allow admin users to view and edit the users and groups in the system. C..
[Django] 게시판, 관리자, Superuser blog페이지를 임의로 생성하고 Main페이지를 추가한것 처럼 blog페이지를 추가해준다. # views.py from django.shortcuts import render # Create your views here. def index(request): return render(request, 'main/index.html') def board(request): return render(request,'main/board.html') # main\urls.py from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), path('board', views.board, name='b..
[Django] 단순 웹 페이지 구현 1. 프로젝트 생성 # 프로젝트_명으로 프로젝트 생성 django-admin startproject [프로젝트_명] - 프로젝트 생성 후 로그는 발생하지 않음 - 디렉토리 트리를 확인해보면 프로젝트_명의 디렉토리가 추가되어있음을 확인 가능 2 DB생성 # 프로젝트 디렉토리 안으로 이동 cd 프로젝트_명 # 프로젝트에서 사용할 데이터가 저장될 Sqlite3 파일 생성 python manage.py migrate 3. 프로젝트 실행 # 서버 실행 (프로젝트 디렉토리 내부) python manage.py runserver 4. 페이지 생성 4.1 앱 생성 # 프로젝트에서 사용할 앱_명으로 앱 생성 python manage.py startapp [앱_명] 앱도 마찬가지로 로그가 발생하지는 않지만 디렉토리가 생성..

반응형