컴퓨터 프로그래밍/FastAPI 6

[FastAPI] Redis 를 활용해 otp 기능 구현

💡 개요FastAPI 프로젝트에 Redis 를 연결한 후 email OTP 인증 기능을 추가하고자 했다.key : email, value : otp 로 설정을 해놓고 만료시간을 3분으로 설정을 했다. 💡 실행docker run -p 6379:6379 --name redis -d --rm redis 위 명령어를 통해 docker 로 부터 redis 최신 버전을 다운 받는다. pip install redis tests > cache.pyimport redisredis_client = redis.Redis( host="127.0.0.1", port=6379, db=0, encoding="UTF-8", decode_responses=True) host 와 port, db 는 0번째 등등 옵션을 설정해준..

[Alembic] Alembic

💡 개요FastAPI + SQLAlchemy 를 사용하고 있는 프로젝트에서 데이터베이스 스키마를 쉽게 관리하기 위해 Alembic 을 사용하려했다.  1️⃣ Alembic 설치pip install alembic  2️⃣ Alembic 초기화alembic init alembic 이 명령어를 실행하면 alembic 디렉터리가 생성되며, 기본 설정 파일과 마이그레이션 파일을 저장할 versions/ 폴더가 만들어진다. 📁 프로젝트 구조 예시:my_project/│── alembic/│ │── env.py # 마이그레이션 환경 설정│ │── script.py.mako # 마이그레이션 파일 템플릿│ │── versions/ # 마이그레이션 파일 저장 위치│── alembic.i..

[FastAPI] DB 연결 및 orm 설정

pip install sqlalchemyorm 다운pip install pymysql파이썬과 mysql 을 연동할 때 사용하는 드라이버pip install cryptography pymysql 을 통해 mysql 접속할 때 인증이나 암호 관련 처리를 해주는 라이브러리  ✔️ Database 연결database > connection.pyfrom sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmakerDATABASE_URL = "mysql+pymysql://root:todos@127.0.0.1:3306/todos"engine = create_engine(DATABASE_URL, echo=True)SessionFactory = sessio..

[FastAPI] Status_code Error 처리

from fastapi import FastAPI, Body, HTTPException HTTPException 클래스를 사용하기 위해서 import 해준다.✔️ 성공 시 status_code 지정@app.get("/todos/{todo_id}", status_code=200)@app.patch("/todos/{todo_id}", status_code=200) ✔️ 실패 시 status_code 지정@app.get("/todos/{todo_id}", status_code=200)def get_todo_handler(todo_id: int): todo = todo_data.get(todo_id) if todo: return todo raise HTTPException(statu..