python 281

[Python] hashlib - 해시 함수 다루기

HashingHashing이란 임의 길이의 데이터를 고정된 길이의 데이터로 변화시켜 저장하는 것을 말한다.해싱을 수행하는 함수나 알고리즘을 해시 함수, 해시 알고리즘이라 하고, 해시 함수의 결과를 해시 값, 해시 코드, 해시 체크섬 또는 해시라고 일컫는다.해시는 빠른 데이터 검색을 위한 해시 테이블이라는 자료 구조에 사용하거나, 해시 값으로는 원문을 알아내기 힘들다는 점을 이용해 값을 암호화하는 데 사용할 수도 있다. 또는 전송된 데이터의 무결성을 확인하는 데 사용하기도 한다.  hashlibPython에서 해시 함수를 사용할 때는 hashlib라는 모듈을 사용한다. hashlib에는 암호화 알고리즘인 SHA1, SHA224, SHA256, MD5 등등의 여러 알고리즘을 포함하고 있다.별도 설치 없이 바..

Python 2024.12.09

[Python] 비동기 - asyncio.create_task

개요2024.06.26-[Python] asyncio - 비동기 프로그래밍에서 asyncio.run, 그리고 await을 이용한 코루틴 실행 방법을 알아보았다. 사실 코루틴 실행 방법은 한 가지 더 존재하는데, 바로 create_task 함수를 이용하는 방법이다.이번 글에서는 create_task를 이용한 비동기 프로그래밍을 정리한다.  create_taskasyncio.create_task(coro, *, name=None, context=None)전달받은 코루틴으로 Task 객체를 생성하고 실행을 예약한다. Task 객체를 반환한다.Task는 get_running_loop으로 반환된 이벤트루프에서 실행되고, 현재 스레드에 실행 중인 이벤트 루프가 없으면 RuntimeError가 발생한다.보통 여러 개..

Python 2024.12.06

[FastAPI] request body 예시 추가하기

개요최근 FastAPI로 API 개발을 하고 있는데, API 문서에 API 요청 방법에 대한 예시가 있으면 좋을 것 같다. 확인해 보니 요청 데이터 예시를 추가할 수 있는 방법이 있어 이번 글을 통해 정리해두려고 한다.  Pydantic 모델에 추가Pydantic 모델에 json_schema_extra 설정으로 examples을 추가하면 예시 request body를 지정할 수 있다.예시 request body는 딕셔너리 리스트로 전달한다. (여러 개를 전달해도 API 문서에는 하나만 표시되는 것 같다.)from fastapi import FastAPIfrom pydantic import BaseModelapp = FastAPI()class Item(BaseModel): name: str de..

Python 2024.12.03

[FastAPI] API 문서 접근 시 404 Not Found 현상 해소

현상FastAPI는 API 문서를 자동으로 생성하는 기능을 제공하고 있어 기본적으로 /docs, /redoc 경로로 접근하면 개발한 API의 문서를 확인할 수 있다.최근 개인 컴퓨터가 아니라 별도의 개발 환경에서 FastAPI를 사용해 개발을 진행하고 있는데, API 문서를 확인하려고 했더니 아래와 같은 화면과 함께 오류가 발생했다.현상을 해결해 보자.  원인이 현상은 prefix가 제거된 프록시가 있을 때 발생한다. prefix가 제거되었다는 것은 FastAPI 내에서는 root 아래에서 제공하고 있는 경로가 FastAPI 외에서는 경로가 추가된 상태고 제공하고 있는 것을 의미한다. 예로 들면 FastAPI에서 /app 경로를 선언했으나, 실제 서비스에서는 /api/v1이라는 prefix를 추가하여 /..

카테고리 없음 2024.12.02

[FastAPI] 응답 상태 코드 지정

개요아래 글에서 FastAPI에서 요청에 대한 응답을 보내는 기본적인 방법을 알아보았다.2024.11.05-[FastAPI] response 형식 지정하기2024.11.06-[FastAPI] 오류 처리 - HTTPException기본적으로 요청 처리에 성공하면 HTTP 200 응답을 전달하는데, 필요한 경우 다른 상태 코드를 사용하여 응답해야 할 수도 있다.이번 글에서는 API의 응답 상태 코드를 지정하는 방법을 정리한다.  status_code응답 상태 코드는 경로 데코레이터에 status_code로 지정할 수 있다.from fastapi import FastAPIapp = FastAPI()@app.post("/items/", status_code=201)async def create_item(name..

Python 2024.11.25

[FastAPI] 오류 처리 - HTTPException

개요2024.11.05-[FastAPI] response 형식 지정하기에서 FastAPI에서의 응답 데이터를 정의하고 반환하는 방법을 알아보았다.근데 애플리케이션이 항상 처리를 성공하는 것은 아니다. 예기치 않게 요청에 대한 처리가 실패할 수도 있다. 내부 동작 오류나 요청 데이터에 문제가 있는 등등 여러 가지 문제로 인해 요청을 처리하지 못할 수도 있다.이번 글에서는 애플리케이션이 요청 처리를 실패했을 때의 응답 방법에 대해 정리한다.  HTTPException클라이언트에게 오류가 포함된 HTTP 응답을 반환할 때는 HTTPException을 사용한다. 임포트는 아래와 같이 하면 된다.from fastapi import HTTPException HTTPException은 애플리케이션 동작 중 오류가 발..

Python 2024.11.22

[FastAPI] response 형식 지정하기

개요아래 글들을 통해 FastAPI에서 요청 데이터를 어떻게 정의하고 접근하는지 알아보았다.2024.10.31-[FastAPI] 요청 데이터 접근 - 경로 매개변수2024.11.03-[FastAPI] 요청 데이터 접근 - 쿼리 매개변수2024.11.03-[FastAPI] 요청 데이터 접근 - request body이번에는 FastAPI에서 응답 데이터를 다루는 방법에 대해 알아본다.  응답 데이터FastAPI에서는 경로 데코레이터에 response_model이라는 매개변수를 추가하여 응답 데이터 형식을 지정할 수 있다. 응답 데이터 형식은 request body 형식을 정의했던 것과 동일하게 pydantic BaseModel을 사용한다. 기본적으로는 JSON 형식으로 응답하는 것 같다.아래 예제는 요청 ..

Python 2024.11.21

[FastAPI] 요청 데이터 접근 - request body

개요이전 글에서 FastAPI를 사용할 때의 경로 매개변수, 쿼리 매개변수를 정의하고, 접근하는 방법을 알아보았다.2024.10.31-[FastAPI] 요청 데이터 접근 - 경로 매개변수2024.11.03-[FastAPI] 요청 데이터 접근 - 쿼리 매개변수 이번 글에서는 FastAPI에서 요청 본문을 정의하고 접근하는 방법을 알아본다.  request bodyHTTP Post 방식으로 통신할 때는 데이터를 request body/response body라고 하는 항목으로 주고받는다.FastAPI에서는 기존과 동일하게 함수에 매핑된 매개변수로 request body로 접근할 수 있는데, 요청 본문의 형식과 데이터 타입을 Pydantic(데이터 검증 라이브러리)이라는 모듈을 사용하여 정의한다. FastAP..

Python 2024.11.20

[FastAPI] 요청 데이터 접근 - 쿼리 매개변수

개요2024.10.31-[FastAPI] 요청 데이터 접근 - 경로 매개변수에서 FastAPI에서의 경로 매개변수에 접근하는 방법을 알아보았다. 이번 글에서는 쿼리 매개변수를 정의하고 접근하는 방법을 알아본다.  쿼리 매개변수쿼리는 URL에서 ? 뒤에 나열되는 &로 구분되는 키-값 쌍을 의미하며, HTTP GET 방식으로 통신할 때 사용한다. 예로 들어 아래 URL에서 쿼리 매개변수는 다음과 같다.http://127.0.0.1:8000/items/?skip=0&limit=10- skip : 0- limit : 10 FastAPI에서는 경로에 매핑하는 함수를 정의할 때 경로 매개변수가 아니라 다른 매개변수를 함께 선언하면 쿼리 매개변수로 해석된다. URL의 일부이기 때문에 당연히 문자열 데이터이지만, 타입..

Python 2024.11.19

[FastAPI] 요청 데이터 접근 - 경로 매개변수

개요2024.10.29-[Python] FastAPI 란에서 FastAPI에 대해 소개하고 기본 구조에 대해서 알아보았다. 이번 글에서는 FastAPI를 사용했을 때 요청 데이터에 접근하는 방법에 대해 알아본다.  경로 매개변수애플리케이션의 경로 매개변수는 매핑된 함수의 매개변수로 전달된다.from fastapi import FastAPIimport jsonapp = FastAPI()@app.post('/index/{cmd}')async def mgnt_index(cmd): response = {'cmd': cmd} return json.dumps(response)  경로 매개변수 타입 지정매핑된 함수의 매개변수에 타입 어노테이션을 사용함으로써 경로 매개변수의 데이터형을 지정할 수 있다.fro..

Python 2024.11.18
1 2 3 4 5 6 7 8 ··· 29