본문 바로가기

전체 글37

urllib3 request 사용해서 requests.exceptions.SSLError 해결 requests 라이브러리를 통해 외부 API 개발을 하는 도중,로컬 및 개발 환경에서는 큰 문제가 없었지만 운영 환경에서 SSLError가 발생했다.verify=False 인자를 추가하거나 파이썬 3.9.x 버전을 사용하는 것은 좋은 방법이 아닌 것 같아 다른 해결 방법을 찾던 중 좋은 자료를 찾았다. (하단 참고) urllib3가 requests보다 더 low level의 코드라고 한다. 자세한 건 chatgpt에게 물어보는 것도 좋다.예제를 통해 두 라이브러리를 비교하면서 알아보자. [GET] requestimport hashlibimport requestsparams ={ "key_a": "val_a", "key_b": "val_b", "key_c": "val_c",}sig = ".. 2024. 5. 15.
로그 데이터를 어떻게 저장하고 사용해야 할까 로그 데이터는 아주 중요하다.아직 적재하기도, 사용해본 적도 없지만 SRE, DevOps, DA 등 다양한 분야에서 사용될 수 있다. 데이터를 어떻게 사용할 지에 따라 저장하는 방법도 달라진다.특정 기능을 사용했을 때, 유저가 어디에 있는지 위/경도 저장RDB에 데이터를 적재한다고 가정해보자.CREATE TABLE user_pattern( id int unsigned auto_increment primary key, lat decimal(13,10) not null, lng decimal(13,10) not null, type varchar(20) not null, data text not null, -- 또는 varchar batch_yn enum('y','n') not.. 2024. 5. 13.
Jinja2 템플릿 활용 1) style.css 파일 적용from fastapi.staticfiles import StaticFilesfrom fastapi import FastAPIapp = FastAPI()app.mount("/static", StaticFiles(directory="static"), name="static")FastAPI가 초기화된 위치를 기준으로 /static 폴더의 경로를 설정한다.html 코드 내에서 아래와 같이 호출이 가능하다. 2) Jinja2Template 예제from pathlib import Pathfrom fastapi.templating import Jinja2Templatesfrom fastapi.responses import HTMLResponsefrom fastapi import AP.. 2024. 5. 8.
Excel 다운로드 API from fastapi import FastAPI, Request, HTTPExceptionapp = FastAPI()'''엑셀 파일 생성'''from fastapi.responses import StreamingResponseimport pandas as pdimport openpyxlfrom datetime import datetimefrom io import BytesIOasync def make_excel_file(cols: list, rows: list) -> StreamingResponse: buffer = BytesIO() df = pd.DataFrame(data=[rows], columns=cols) file_name = f"example_{datetime.now().dat.. 2024. 5. 8.