반응형 Python130 Python - FastAPI with CRUD application by pydantic FastAPI는 파이썬에서 사용할 수 있는 현재 가장 좋은 백엔드 프레임워크라고 할 수 있다. FastAPI는 다음과 같은 장점을 가지고 있다. 1. 각 함수는 비동기로 동작한다. 2. 백엔드를 작업하면 데이터 처리에 골치를 아픈 경우가 많다. FastAPI는 데이터 오류를 쉽게 처리할 수 있는 좋은 프레임워크 이다. Pydantic을 이용한 Json 값 오류를 쉽게 조치 할 수 있다. 세부적인 내용은 https://pydantic-docs.helpmanual.io/ 를 확인하기 바란다. 3. Swagger, Redoc를 기본적으로 제공한다 4. 파이썬에서 빠른 프레임 워크에 속한다. 아래 벤치마크 결과를 확인해보면, 다른 파이썬 웹 프레임워크 보다 휼륭한 속도를 가지고 있다. Round 19 resul.. 2024. 3. 25. Python - FastAPI Relationship SQL data 처리 FastAPI를 이용해서 Relationship 데이터를 처리하면서 해당 부분만 요약해서 정리해 본다. 본 예시에서는 Post라는 본문에 관련있는 Account들을 나열하는 구조를 예시로 잡았다. 그리고 기본 프로그램의 구조는 아래와 같다. . └── crud.py ├── database.py ├── main.py ├── api.py └── schemas.py 이를 위해 Account와 Post에 대한 관계 테이블에 대한 Model을 정의 해야 한다. Post와 관련있는 Account를 참조하기 위해서 Account에 post_id라는 외례키 컬럼을 추가하였다. models.py from sqlalchemy import Boolean, Column, Integer, String, DateTime, Big.. 2024. 3. 25. PYTHON - pip 패키지 실치 [SSL: CERTIFICATE_VERIFY_FAILED] 오류 해결 pip를 이용해서 패키지를 설치하다보면 나타날 수 있는 오류로써, CERTIFICATE_VERIFY_FAILED 해결 방법은 trusthost를 등록하여 해소가 가능하다. 보통 패키지들은 pypi.org 혹은 pypi.python.org에서 다운로드 할 수 있으므로, 아래 도메인을 신뢰하는 도메인으로 구성하자. pypi.org pypi.python.org files.pythonhosted.org pip --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org install pip 환경 설정 파일에 등록하면, 매번 입력하는 번거로움을 해소할 수 있다. 경로는 아래와 같다. %APPDATA%\pip\.. 2024. 3. 18. Python - Microsoft 365 Defender Advanced hunting Query Microsoft 365 Defender Advanced hunting Query 에서 사용할 수 있는 Python 코드이다. mde_search 함수를 재활용해서, 입력한 값이 어떤 타입인지에 따라 검색하는 조건을 바꾸도록 설계되어 있다. import json import time import argparse import pandas as pd import logging import sys import os import re import validators import datetime import random import zipfile import urllib.parse from collections import OrderedDict from urllib3.util.retry import Retry i.. 2024. 3. 18. Python - Base64 인코딩, 디코딩 방법(인증/로그인/토큰) Python에서 Base64 인코딩과 디코딩은 기본적으로 제공하는 내장 모듈이다. 인증 및 로그인에 jwt나 토큰을 사용한다면 값을 그냥 전달하지 않고 base64로 인코딩하여 전달해야 하기 때문인데 보통 인증쪽에서 많이 사용된다. 파이썬에서는 base64 모듈을 통해서 활용이 가능하다. import base64 8비트 이진 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다. - 위키 그럼 Base64 인코딩을 진행하는 방법은 다음과 같다. Base64 인코딩 Byte(바이트)로 변환 > Base64 인코딩 진행 코드로 보면 다음과 같다. str_name = 'test' byte_name = str_name.encod.. 2024. 3. 18. Python - 문자열을 Datetime변환시 TimeZone(strptime unconverted data remains) 해결하기 문자열로 되어 있는 값을 Datetime으로 변환하고자 한다면, 정확하게 각 문자열이 시간데이터 셋과 동일하게 맞추어야 하는데, Timezone을 인식 시키는 방법에 대해서 간단히 알아보고자 한다. 만약 아래와 같이 한국 타임존값이 들어 있는 것의 경우를 가정해 보겠다. '2023-12-18T15:47:56.599821424+09:00' >>> import datetime >>> str_date_time = '2023-12-18T15:47:56.599821424+09:00' >>> convert_datetime = datetime.datetime.strptime(str_date_time, '%Y-%m-%dT%H:%M:%S.%f') Traceback (most recent call last): File ".. 2024. 3. 14. Python - Microsecond(마이크로초) 단위 문자열 변환하기 가장 기본적으로 많이 사용되는 시간 값은 소수점 6자리로 표현되는 Microsecond(마이크로초) 단위의 시간 값이라고 할 수 있다. from datetime import datetime str_datetime = '2023-12-18T15:47:56.599821' convert_datetime = datetime.strptime(str_datetime, '%Y-%m-%dT%H:%M:%S.%f') datetime.datetime(2023, 12, 18, 15, 47, 56, 599821) 2024. 3. 14. Python - 타입 비교 type, isinstance 자주 사용하는 건데 자꾸 까먹어서 여기에 기록해 둔다. 현재 type이 리스트인지 확인하는 구분으로 리스트인 경우를 구분해 다른 처리를 진행할 때 사용할 수 있다. type 활용 직관적으로 type 구분을 활용하는 방법이다. >>> a_data = ['a','b'] >>> b_data = 'a,b' >>> if type(a_data) is list: ... print('yes, it is list') ... yes, it is list isinstance 활용 데이터간 비교시 사용하는 내장함수로 타입에도 사용이 가능하다. >>> a_data = ['a','b'] >>> b_data = 'a,b' >>> if isinstance(a_data, list): ... print('yes, it is list').. 2024. 3. 14. Python - Linting, 소스 분석, 코드 최적화 flake8 최선의 성능과 안정성이 있는 코드는 모든 경고를 제거한 코드라 할 수 있다. 여기에서는 flake8를 통해서 간편하게 코드에서 필요한 수정사항등이 무엇이 있는지 알아보도록 하겠다. VSCode에서 많은 오류와 경고로 코드를 잡아주지만, VScode를 사용할 수 없거나, CI/CD 상황에서 사용할 만한 방법으로 flake8를 사용하면 어떨까 한다. 아래는 간단하게 VSCode 기본 상태에서 flake8를 이용해서 테스트를 한 결과이다. VScode와 다르게 현재 3가지 수정 사항이 있는 것으로 확인된다. flake8 이후 특정 파일이나 디렉토리를 통해서 코드를 분석할 수 있다. PS C:\Users\Han\python\flake8> python3 -m flake8 . .\test.py:4:1: F401 '.. 2024. 3. 14. 이전 1 ··· 3 4 5 6 7 8 9 ··· 15 다음 반응형