Python 112

[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

[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

[Pytest] 2. Pytest 명령어 옵션 (command)

Pytest 명령어 옵션 1. 해당 디렉토리 내 모든 test_.py, *_test.py 실행 $ pytest 2. 특정 디렉토리 내부 실행 $ python -m pytest / 3. 특정 테스트 함수만 실행시 (k 옵션) $ pytest .py -k 4. 하나라도 Fail시 멈추고 싶을 때 $ pytest -x 5. 각 테스트 함수 결과 출력 (보다 자세히) $ pytest -vv 6. . 모든 test 실행 결과 출력 pytest -rA (pass포함) pytest -ra (pass 제외) 7. 결과에 Color 입히고 싶을때 (kernel 창 등에서 쓰기 좋음) $ pytest --color=yes 8. 캐시 파일 초기화 - 정확성에 대한 CI 과정에 사용 권장 (clear-cache ) $ pyt..

Python/Advanced 2022.11.05

[Pytest] 1. Pytest란? (+ 프레임워크 별 사용)

Pytest란? Python 코드를 단위 테스트 (= 유닛테스트) 하기 위한 TEST Framework로, Python 기반 프로젝트의 TDD (Test Driven Development)에 주로 사용 과거 TDD 종류 기반 정리 글 링크 [SW 개발] 테스트 중심의 개발 TDD (with. Unit, E2E, Integration) "의도하지 않은 결함 수가 많아지면 개발자는 변경을 주저한다" 테스트 주도 개발 (TDD) 란? Test Driven Development 의 약자로 테스트 주도 개발이란는 뜻을 가지는 소프트웨어 개발 방법론 중 하나이 yubi5050.tistory.com Pytest 특징 테스트를 작성하는 데 있어 함수만 정의하면 되므로 편리 (단, pytest만의 고유한 방식을 익혀야 ..

Python/Advanced 2022.11.04