전체 글 102

DRF viewset을 이용한 serializers, authenticated 실습

APIView -> Generic(APIView + Mixins) -> ViewSet(CRUD 다 가능. URL까지 DefaultRouter로 등록 권장) 실습 가상환경 설정 가상환경 활성화 django와 drf 설치 pip install django pip install djangorestframework startproject하고 blog 앱 생성 project / urls.py from django.contrib import admin from django.urls import path, include urlpatterns = [ path("admin/", admin.site.urls), path('blog/', include('blog.urls')), path('api-auth/', include..

Django/DRF 2023.11.20

JWT (JSON Web Token)

JWT - JSON 형식의 토큰 - 인증, 정보 교환, 세션 관리 용도 (JWT를 사용하면 세션 정보를 관리할 필요가 없어짐)로 사용 JWT의 구성 - 헤더 : JWT의 유형 및 서명 알고리즘과 같은 메타 정보 포함. base64 인코딩 - 페이로드 : 실제로 전달하려는 정보 포함. base64 인코딩 - 서명 : 토큰의 유효성을 검증하기 위한 부분. 헤더, 페이로드, 비밀 키를 사용해서 생성. base64 인코딩 xxxxx[Header].yyyyy[Payload].zzzzz[Signature] Django와 JWT의 연계 - Django의 기본 인증 시스템은 웹 애플리케이션에서는 효과적이지만, RESTful API나 분산 시스템에서 제한사항이 존재 (세션 유지와 관리 때문에 서버에 저장공간이 필요하고 ..

Django/DRF 2023.11.17

TDD (Test-Driven Development)

단위 테스트 (unit test) : 개별 함수나 메서드 같은 코드의 가장 작은 단위가 예상대로 동작하는지 검증하는 테스트. - Python 에서 unittest 모듈을 이용해서 단위 테스트를 작성하고 실행할 수 있음 import unittest # 모듈 import def add(x, y): # 더하는 함수 return x + y class TestAdd(unittest.TestCase): # 단위 테스트 def test_add(self): self.assertEqual(add(1, 2), 3) # add(1,2)가 3과 같은지 확인 if __name__ == '__main__': unittest.main() # 결과가 OK로 나옴 import unittest def add(x, y): return x..

Django 2023.11.16

내 인생 최고의 영화, <싱 스트리트> 🤙🏻💍🤍

죽기 전에 딱 한 가지 영화만 볼 수 있다면 나는 싱 스트리트를 볼 것이다. 죽기 전에 딱 하나의 노래만 들을 수 있다면 나는 싱 스트리트 OST를 들을 것이다. 내 인생에 가장 많은 영향을 줬고, 주고 있고, 줄 것인 영화가 바로 이 영화이다. 영화의 모든 것이 조화롭고 어떤 한 부분도 빠짐없이 완벽하다. 주인공의 오버핏 빈티지 코트 같은 자잘한 부분부터 주인공 형의 구체적인 사연과 입체적인 캐릭터, 낭만 넘치는 스토리와 언제 들어도 좋은 OST, 누구든 마음이 뜨거워질 수밖에 없는 엔딩까지 모든 게 내 스타일이고 영화에 이입을 안 할 수가 없게 된다. "절대 적당히 해선 안돼 알아들었어?" 이 영화에서 내가 제일 좋아하는 대사이다. 항상 열심히 사는 사람들을 동경해 왔고 좋아해 왔다. 내가 살면서 정..

나의 일상 2023.11.14

Django 프로젝트(1) - Hot🔥Deal Blog

https://github.com/UserDongHu/Blog_Project 처음으로 해본 Django 프로젝트. 멘탈 깨진채로 끝까지 완성한 나 칭찬해.. 다음에는 더 진심으로 프로젝트에 몰두하는걸로.. Django Blog Project - Hot🔥Deal Blog 다양한 핫딜 정보를 게시할 수 있는 블로그 입니다. 필요한 물건을 정보 공유를 통해서 저렴한 가격으로 구매할 수 있는 웹사이트 입니다. 카테고리별로 다양한 핫딜 정보를 볼 수 있습니다. 게시글을 통해 바로 쇼핑몰 링크로 이동하여서 구매할 수 있습니다. 1. 목표와 기능 1.1 목표 Django를 통해 핫딜 정보를 게시할 수 있는 블로그 개발 Accounts(로그인, 회원가입)과 CRUD(생성, 읽기, 업데이트, 삭제) 기능을 CBV로 구현..

Django 2023.11.08

모든 걸 포기하고 너에게로 향하겠다, <말할 수 없는 비밀>

너무 우울하고 슬퍼서 스스로 망가지고 있을 때 넷플릭스에서 말할 수 없는 비밀을 봤다. 영화 속 주인공들에게 감정 이입이 잘 되기도 하고, 너무 속상한 일이 있어서 감동적인 장면이 아닌데도 조금씩 울었던거 같다. 남녀 주인공 모두 서로를 위해서 내가 가진 것들과 현재의 모든 것을 포기하고 서로를 택했다. 조금의 작은 오해로 서로 아파했고, 말할 수 없는 비밀 때문에 완전히 볼 수 없게 되었을지도 모르는 것이 안타깝고 아쉬웠다. 서로에게 더 솔직했으면 어땠을까 하는 생각이 계속 들었지만 너무 진심인 상태에서는 어떠한 이성적인 사고를 할 수 없는다는 것을 잘 알고 있기 때문에 이해가 됐다. 나에게도 기적같은 일이 일어났으면 좋겠다. 누구에게나 말할 수 없는 비밀은 있지만 나에게는 없었으면 하는 바람이다.

나의 일상 2023.10.30

SQL 쿼리문

https://sqlschool.co.kr/ SQooL 웹페이지에서 실행 가능한 교육 목적의 SQL 튜토리얼 사이트입니다. 별도의 설치 없이 기본 SQL 구문을 실습해 볼 수 있습니다. sqlschool.co.kr 여기서 실습했음. SELECT 데이터를 조회하거나 산술식, 함수 등을 실행할 때 사용. SELECT * FROM student; student의 모든 정보를 출력 SELECT 학번, 이름, 학과 FROM student; student의 학번, 이름, 학과를 출력 SELECT 1+1; SELECT (10 + 2) / 2; DISTINCT 중복값을 제거. SELECT DISTINCT 학과번호 FROM subject; subject의 학과번호에서 중복제거하고 출력 ORDER BY 결과를 정렬. 오름..

SQL 2023.10.25

Django와 SQLite3

Django에서 DB(SQLite3)에 접근하는 방법은 여러가지가 있는데, 그중 하나는 https://userdonghu.tistory.com/entry/Django-%EC%8B%A4%EC%8A%B545-ORM-CRUD Django ORM을 이용해서 DB CRUD 해보기 공식문서 : https://docs.djangoproject.com/en/4.2/ref/models/querysets/#django.db.models.query.QuerySet Django The web framework for perfectionists with deadlines. docs.djangoproject.com Django ORM : 우리가 만든 모델 클래스와 DB에 생성된 userdonghu.tistory.com 와 같이 ..

Django 2023.10.23