분류 전체보기 323

[DRF] 간단한 캐싱 기능 구현 하기 (by. redis, DRF)

1. Docker redis run & django-redis 설치 Memcached 형태의 Memory DB인 Redis를 Docker로 작동시킨다. $ docker run -p 6379:6379 redis Django에서 Redis에 접근하기 위한 추가 library를 설치한다. $ pip install django-redis 2. settings.py 작성 django-admin을 이용한 project는 만들었다고 가정 CACHES = { 'default':{ 'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://127.0.0.1:6379', } } 3. urls.py 작성 from django.contrib import admin fr..

Python/DRF 2022.11.19

[Django] 간단한 메일 전송 기능 구현 (by. Gmail )

1. Google 계정 보안 설정하기 (1) 구글 계정 - 보안 접속 (2) 2단계 인증 설정 (3) 앱 비밀번호 생성 구글 뿐만 아니라 네이버로 전송시에도 다음과 같이 앱 비밀번호를 생성하는 절차를 거쳐야 한다. 2. settings.py 메일 전송에는 SMTP Protocol이 활용되고, django에 내장된 mail 기능을 사용 # gmail EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = "smtp.gmail.com" EMAIL_HOST_USER = EMAIL_HOST_PASSWORD ='' # gmail 2단계 보안 인증 - 앱 비밀번호임! EMAIL_PORT = 587 # gmail SMTP 포트 EMAIL_..

Python/Django 2022.11.18

[DB] MongoDB Docker + Robo3T 셋팅

MongoDB , Robo3T 👉 MongoDB - 대표적인 NoSQL DB (링크) MongoDB Atlas: Cloud Document Database Cloud-hosted MongoDB service on AWS, Azure, and GCP www.mongodb.com 👉 Robo3T - MongoDB DBMS Tool (링크) Robo 3T | Free, open-source MongoDB GUI (formerly Robomongo) Read by Dmitry Schetnikovich robomongo.org MongoDB Docker 명령어 # VOLUME 위치, USERNAME PASSWORD 임의 설정하기 $ docker run --name mongodb-container -v :/data..

DB/기본 실습 2022.11.13

[Django] Pagination 방법 비교 (Feat. Django, DRF)

Pagination이란? Pagination 이란 한번에 많은 데이터를 받기 힘든 경우, 특정 구역을 나눠서 받는 방법 Django에서는 Pagination을 구현하기 위한 여러 모듈들이 존재하는데, 향후 Pagaintation 구현시 의사 결정을 빠르게 할 수 있도록, 각 방법을 비교 해보며 특징을 정리 해놓으려고 한다. 👉 Pagination 의 큰 갈래 (방향성) Pagination 방법에는 여러 종류가 있겠지만 크게 3가지로 나뉘는 걸로 보이며, 1), 2) 의 경우 많이 쓰이는 대중적인 방법으로 선호됩니다. 3) 의 경우에도 1) 페이지 번호 기반 : 미리 페이지 크기(page_size)를 정하고, 페이지 번호(page_num)를 요청받아 조회 응답 방법 2) 특정 지점 부터 특정 갯수 기반 :..

Python/Django 2022.11.10

[DRF] DRF Pagination (by. CursorPagination)

Django에서 게시판을 만드는 방법은 크게 아래 두가지 방향으로 구현이 가능하다. Django의 Paginator (django.core.paginator import Paginator) DRF(Django Rest Framework)의 Pagination(rest_frameowork.pagination) 두 방식은 각기 장단점이 있으며, 서비스(기능) 중심으로 더 결이 잘 맞는 적절한 방향을 정하는 것이 좋다. 추가적으로 DRF 에는 세부적으로 3가지 방법이 제공되는데 PageNumberPagination : 페이지 크기(PAGE_SIZE)를 정하고, 페이지 번호를 요청하는 조회 방법 LimitOffsetPagination : 특정 지점(offset) 부터 특정 데이터 갯수(limit)을 정해서 가져..

Python/DRF 2022.11.10

[DRF] DRF Pagination (by. LimitOffsetPagination)

Django에서 게시판을 만드는 방법은 크게 아래 두가지 방향으로 구현이 가능하다. Django의 Paginator (django.core.paginator import Paginator) DRF(Django Rest Framework)의 Pagination(rest_frameowork.pagination) 두 방식은 각기 장단점이 있으며, 서비스(기능) 중심으로 더 결이 잘 맞는 적절한 방향을 정하는 것이 좋다. 추가적으로 DRF 에는 세부적으로 3가지 방법이 제공되는데 PageNumberPagination : 페이지 크기(PAGE_SIZE)를 정하고, 페이지 번호를 요청하는 조회 방법 LimitOffsetPagination : 특정 지점(offset) 부터 특정 데이터 갯수(limit)을 정해서 가져..

Python/DRF 2022.11.10

[DRF] DRF Pagination (by. PageNumberPagination)

Django에서 게시판을 만드는 방법은 크게 아래 두가지 방향으로 구현이 가능하다. Django의 Paginator (django.core.paginator import Paginator) DRF(Django Rest Framework)의 Pagination(rest_frameowork.pagination) 두 방식은 각기 장단점이 있으며, 서비스(기능) 중심으로 더 결이 잘 맞는 적절한 방향을 정하는 것이 좋다. 추가적으로 DRF 에는 세부적으로 3가지 방법이 제공되는데 PageNumberPagination : 페이지 크기(PAGE_SIZE)를 정하고, 페이지 번호를 요청하는 조회 방법 LimitOffsetPagination : 특정 지점(offset) 부터 특정 데이터 갯수(limit)을 정해서 가져..

Python/DRF 2022.11.10

[Django] Django Pagination (by. Django Paginator)

Django에서 게시판을 만드는 방법은 크게 아래 두가지 방향으로 구현이 가능하다. Django의 Paginator (django.core.paginator import Paginator) DRF(Django Rest Framework)의 Pagination(rest_frameowork.pagination) 두 방식은 각기 장단점이 있으며, 서비스(기능) 중심으로 더 결이 잘 맞는 적절한 방향을 정하는 것이 좋다. 해당 글은 Django의 Paginaotor를 이용해 Pagination을 구현하는 방법을 설명한다. 1. Project, App 생성 django-admin startproject pagination1 django-admin startapp posts 2. settings.py INSTALL..

Python/Django 2022.11.10

[Pytest] 4. Pytest with Django (Feat. pytest-Django)

pytest-django 설치 Django 프레임워크에서 Pytest를 진행 하기 위해선 pytest-django 패키지 설치가 필요하다. $ pip install pytest-django https://pytest-django.readthedocs.io/en/latest/ pytest-django Documentation — pytest-django documentation © Copyright 2022, Andreas Pelme and contributors. Revision 1f3708ab. pytest-django.readthedocs.io django 셋팅 1. Django 프로젝트 생성 2. Django APP 생성 3. Settings.py에 DB 정보 및 APP 등록 (만약에 DOT_ENV..

Python/Advanced 2022.11.06

[Pytest] 3. Pytest 문법 (Feat. fixture, parametize)

Basic pytest 기본 사용법 # test1.py import pytest def func(x): return x + 1 def test_add(): assert func(4) == 4 $ pytest test1.py Fixture Fixture란 Testing 을 하기 위해 공통적으로 필요한 자원을 사전에 준비해놓는 방법 (1) square_10이란 함수를 Fixture로 준비. (테스트 간 매반 호출됨) # 함수를 fixture로 @pytest.fixture def square_10(): return 10 * 10 def test_square(square_10): assert square_10 == 100 # 121 (2) square_10이란 함수를 Fixture로 미리 준비 및 활용 @pyt..

Python/Advanced 2022.11.06