반응형

분류 전체보기 504

FastAPI 비동기 세션 처리 AsyncSession 활용 예제(sqlalchemy)

지난 번의 글에서는 FastAPI로 sqlalchemy 활용 CRUD 예제 코드를 다룬 적이 있습니다. FastAPI에서 sqlalchemy 활용 SQL DB CRUD 구현 예제안녕하세요. 아래 링크의 지난 글에서는 NoSQL인 MongoDB를 기준으로fastapi의 CRUD 메소드 구현 방법을 알아보았습니다. FastAPI에서 MongoDB 데이터 연동 CRUD 예제안녕하세요. 아래 링크의 지난 글에서는jimmy-ai.tistory.com 이번 글에서는 해당 포스트의 코드를 비동기로 세션을 처리하는AsyncSession를 활용한 코드로 변경해보도록 하겠습니다.  모듈 설치AsyncSession 처리를 위하여 몇 가지 모듈 설치가 더 필요합니다.필요한 모듈들을 설치하는 예제 명령어는 다음과 같습니다. p..

Python/Backend 2024.06.01

FastAPI Query vs Body 예제 및 특징 비교

fastapi에서 유저에게 요청 파라미터를 받는 방식으로 Query와 Body를 많이 사용하는데요.이번 글에서는 이 두 가지 방식의 구현 방법과 차이에 대해서 간략하게 정리해보도록 하겠습니다.  Query parameters 사용 예제fastapi에서 Query를 이용하여 파라미터 요청을 받는 예시 코드는 다음과 같습니다.from fastapi import FastAPI, Queryapp = FastAPI()@app.get("/items")async def read_items(item_id: int = Query(...), q: str = Query(None)): return {"item_id": item_id, "q": q} 해당 예시에서는 item_id는 필수 파라미터, q는 선택 파라미터가 됩..

Python/Backend 2024.05.27

FastAPI에서 sqlalchemy 활용 SQL DB CRUD 구현 예제

안녕하세요. 아래 링크의 지난 글에서는 NoSQL인 MongoDB를 기준으로fastapi의 CRUD 메소드 구현 방법을 알아보았습니다. FastAPI에서 MongoDB 데이터 연동 CRUD 예제안녕하세요. 아래 링크의 지난 글에서는 fastapi의 CRUD 메소드 사용 방법을 알아보았습니다. FastAPI get, post, patch, delete 예제 코드 정리파이썬의 대표 백엔드 모듈인 FastAPI에서 get, post, patch, delete 메jimmy-ai.tistory.com 이어서 이번에는 관계형 데이터베이스(mysql, postgresql 등)를 기준으로fastapi에서 CRUD 메소드들을 구현하는 방법을마찬가지로 간략한 예제를 통해 정리해보도록 하겠습니다.  SQL 데이터베이스 불러..

Python/Backend 2024.05.23

FastAPI Depends 예제 및 장점 간단 정리

fastapi의 Depends를 통하여 의존성 주입을 하는 간단한 예제를 통해서사용하면 좋은 이유와 사용 방법을 간략하게 요약해보도록 하겠습니다.  FastAPI Depends 사용 예제 - 토큰 검사예를 들어 토큰을 통하여 요청을 진행하는 API가 있다고 가정해 보겠습니다.이를 위해 토큰 - 유저 매칭을 진행하는 함수를 다음과 같이 작성해 보았습니다.from fastapi import FastAPI, Depends, HTTPExceptionapp = FastAPI()# admin token이 abcde, 일반 유저 token이 12345라고 가정user_info = {"abcde" : "admin", "12345" : "user1"}def get_current_user(token: str): if..

Python/Backend 2024.05.17

도커 컨테이너 종료 / 삭제 및 이미지 제거 방법

실행 중인 Docker container를 중지하고 더 이상 사용되지 않을 컨테이너를제거하는 방법, 그리고 컨테이너를 생성했던 이미지까지 삭제하는 방법을차례대로 하나씩 정리해보도록 하겠습니다.  Docker 컨테이너 중지 방법먼저, docker ps 명령어로 실행 중인 도커 id 혹은 이름을 확인합니다. 이후, 다음과 같은 명령어로 도커 컨테이너 종료가 가능합니다.docker stop [컨테이너 ID 또는 이름]# 실제 사용 예제(id가 a1b2c3d4e5, name이 mysql인 경우 둘 다 가능)docker stop a1b2c3d4e5docker stop mysql  Docker 컨테이너 삭제 방법컨테이너 실행 종료 이후, 해당 container를 더 이상 사용하지 않을 계획이라면컨테이너 삭제를 진행..

Infra/Docker 2024.05.10

FastAPI에서 MongoDB 데이터 연동 CRUD 예제

안녕하세요. 아래 링크의 지난 글에서는 fastapi의 CRUD 메소드 사용 방법을 알아보았습니다. FastAPI get, post, patch, delete 예제 코드 정리파이썬의 대표 백엔드 모듈인 FastAPI에서 get, post, patch, delete 메소드를 구현하는 방법을 간단한 예제를 통하여 정리해보도록 하겠습니다. get 메소드 예시 간단한 유저 데이터를 저장하는 상황을jimmy-ai.tistory.com 이어서 이번에는 실제 데이터베이스를 연동해서 fastapi를 활용하는 방법을 살펴볼 것인데요.key-value 형태로 데이터를 저장하는 경우 대표적으로 활용 가능한 NoSQL 데이터베이스인MongoDB를 연동하는 예제를 여기서 살펴보도록 하겠습니다.  MongoDB 생성 및 파이썬에..

Python/Backend 2024.05.06

파이썬에서 값 암호화 해싱 및 검증 방법(bcrypt 모듈)

유저의 비밀번호 등의 중요 정보를 데이터베이스에 저장하기 위해서는 반드시값 암호화 해싱을 해야하는데요. Python의 경우에 편하게 활용이 가능한bcrypt 모듈의 기능에 대하여 간단한 예제를 통해서 살펴보도록 하겠습니다. 해당 모듈 설치는 다음 명령어로 진행해주시면 됩니다.pip install bcrypt  유저의 비밀번호 해싱 방법유저의 비밀번호를 input으로 받아 해싱된 결과를 반환받는 함수는 다음과 같습니다.참고로 gensalt()로 실행 시 같은 값을 해싱하더라도매번 다른 값이 출력되도록 만들기에 보안 상 이점이 큽니다.import bcryptdef hash_password(user_pw: str) -> str: hashed_pw: bytes = bcrypt.hashpw(user_pw.e..

Python/Utils 2024.05.02

종료된 도커 컨테이너를 찾고 재실행하는 방법

Docker container가 중지된 경우, 해당 컨테이너의 id를 찾고다시 실행하는 명령어에 대하여 간략하게 정리해보도록 하겠습니다.  종료된 Docker 컨테이너 id 탐색 명령어일반적인 docker ps 명령어로는 현재 실행 중인 도커 컨테이너들만 조회가 됩니다.중지된 도커 컨테이너까지 함께 조회하기 위해서는 docker ps -a 명령어로-a 추가 옵션을 같이 지정해주어야 합니다. STATUS 항목이 다음과 같이 Exited로 되어있는 컨테이너가 종료된 컨테이너에 해당됩니다.CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS ..

Infra/Docker 2024.04.28

FastAPI get, post, patch, delete 예제 코드 정리

파이썬의 대표 백엔드 모듈인 FastAPI에서get, post, patch, delete 메소드를 구현하는 방법을간단한 예제를 통하여 정리해보도록 하겠습니다.  get 메소드 예시간단한 유저 데이터를 저장하는 상황을 가정해보고,먼저 전체 유저의 정보를 가져오는 코드를 작성해보도록 하겠습니다.from fastapi import FastAPI, HTTPExceptionfrom pydantic import BaseModelfrom typing import Listapp = FastAPI()# 데이터베이스 역할을 할 간단한 딕셔너리db = {}# 데이터 모델 정의class User(BaseModel): id: int username: str email: str# 전체 유저의 정보들을 리스트로 반..

Python/Backend 2024.04.24

JavaScript에서 ChatGPT API 호출 방법 코드 예제

자바스크립트에서 GPT 등의 openai 모델에 대한 API를 호출하는 방법을 간략한 코드 예제로 쉽게 정리해보도록 하겠습니다. 1. 프롬프트 준비 우선, 프롬프트 목록에 대한 리스트를 아래와 같은 양식으로 준비해 줍시다. const messages = [ { role: 'system', content: "답변은 항상 한국어로 해주세요."} { role: 'user', content: "Who is the first president of USA?"} ] 2. GPT 호출 파라미터 준비 이후, openai api 호출을 위한 json input 양식을 준비해줍시다. 예시는 다음과 같습니다.(위에서 정의한 messages 변수를 사용합니다.) const gptInput = { model: 'gpt-3.5-..

반응형