반응형

Python/Backend 11

FastAPI 서버를 HTTPS로 실행하는 방법

안녕하세요.FastAPI로 서버를 실행할 때, http가 아닌 보안이 추가된 https 프로토콜로서버를 실행할 수 있는 방법을 간략하게 정리해보도록 하겠습니다.  1. SSL 인증서 발급먼저, https로 서버를 실행하기 위해서는 ssl 인증서가 필요합니다.ssl 인증서는 openssl, mkcert, certbot, AWS Certificate Manager 등다양한 방법으로 발급받을 수 있는데요.이 중 어떤 방법으로 발급받던 HTTPS 프로토콜 적용은 가능합니다. 다만, 보안 및 원활한 실행을 위하여 self-signed 인증서보다는도메인 주소와 연결된 ssl 인증서를 발급받기를 권장드립니다. 여기서는 mkcert를 통해서 인증서를 발급받는 명령어의 예시를 다뤄보도록 하겠습니다.이렇게 발급 받은 인증..

Python/Backend 2024.12.01

FastAPI docs 작성 방법 정리

Python의 fastapi를 통하여 API 문서를 자동으로 쉽게 작성되도록 만들 수 있습니다.이 기능을 잘 활용하면 API를 구현할 때 이점이 굉장히 많은데요.이번 글에서는 fastapi의 docs 작성 방법들에 대하여 간략하게 요약해보도록 하겠습니다.  텍스트 설명 입력 방법API 사용 방법에 대하여 텍스트 설명을 추가하고 싶은 경우가 많습니다.여기서는 3가지 방법을 소개합니다.summary: 메소드 사용 방법 옆의 설명(빨간색 표시 부분)description: 메소드 상세 사용 방법(주황색 표시 부분)response_description: response 메시지에 관한 설명(노란색 표시 부분) 위 3가지 설명란이 제공된 docs의 예시는 다음과 같습니다. 코드에서는 위 3가지를 다음과 같이 적용할 ..

Python/Backend 2024.07.30

FastAPI CORS 설정 방법 코드 예제

파이썬의 fastapi 모듈로 백엔드 서버를 구현할 때,CORS 정책 설정을 진행하는 방법에 대한 코드 예제를간략하게 정리해보도록 하겠습니다.  모든 경우 허용 예시FastAPI에서 CORS 정책 설정은 CORSMiddleware를 import하여 다음과 같은 코드 스니펫을 통하여 진행할 수 있습니다.from fastapi import FastAPIfrom fastapi.middleware.cors import CORSMiddlewareapp = FastAPI()# CORS 설정 방법app.add_middleware( CORSMiddleware, allow_origins=["*"], # 허용할 도메인 목록 (모든 도메인 허용: ["*"]) allow_credentials=True, # 쿠..

Python/Backend 2024.06.30

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

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

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

Flask 디버그 모드란? / 사용 예제, 장점

파이썬 플라스크로 구현된 서버에서 오류가 발생할 경우, 웹사이트 상에서 에러 메시지가 보이지 않습니다. 이런 경우, 플라스크에 내장된 디버그 모드를 활용하면, 오류 상황을 조회할 수 있어 편리한데요. 이번 글에서는 Flask의 Debug 모드에 대해서 예제를 통하여 간단하게 살펴보도록 하겠습니다. 디버그 모드 미적용 경우 우선, 아래와 같은 간단한 기능을 플라스크를 통하여 실행해보도록 하겠습니다. 참고로, app.run에서 debug 인자의 기본 값은 False인 점을 참고해주세요. from flask import Flask app = Flask(__name__) @app.route('/') def square(number): return f'{number} ** 2 = {int(number) ** 2}..

Python/Backend 2023.10.05
반응형