본문 바로가기

fastapi11

[FastAPI] SQL Alchemy 연결 오류 해결 1. DB 연결 주소 수정 필요기존 프로젝트는 AWS RDS MySQL로 연결해서 구현하였으나, 프리티어 기간이 종료되었다.비용이 많이 발생하지 않는다면 RDS를 종료하지 않고 유지하려고 했으나, 개인 프로젝트라서 데이터는 그다지 존재하지 않는데유지 비용이 너무 많이 들어서 프로젝트와 RDS 모두 종료하였다.프로젝트가 있는 EC2는 다른 프로그램이 동작중이라서 비용은 계속 나갔는데RDS 유지 비용 때문에 프로젝트를 내려 둔 것이 아깝다고 생각되어서 무료 DB를 사용해서 다시 살려두기로 생각했다.그래서 찾은 것이 supabase, postgreSQL 다. 2. 연결 DB 수정을 위한 초기 작업프로젝트에서 DB랑 연결하는 방식은 SQL Alchemy로 되어있고, 같은 관계형 DB로 이동하는 것이기 때문에연결.. 2024. 6. 5.
[Docker] FastAPI 프로젝트 Docker Bulid 하기 FastAPI로 만든 백엔드 어플리케이션을 만들었다. 완성 까지는 아니지만 주변 사람들에게 이용을 권유 해 보고, 사용자 경험을 토대로 더 수정해 나가고자 현재 단계에서 배포하기로 했다. 배포를 하기 위해서는 다양한 경로와 방법이 있지만 이번 프로젝트는 AWS Elastic Beanstalk 에서 Docker 를 통해 배포해 보기로 했다. Docker를 통한 배포 방법은 이전에 한 번 경험해 본 적이 있지만 조금 오래 되었기도 했고, 프로젝트 코드를 그대로 배포하는 것과 비교했을 때 설치 버전에 의한 에러 발생 가능성이 낮아 해당 방법을 다시 한 번 사용해 보기로 했다. 1. Dockerfile 생성 /backend .venv requirement.txt Dockerfile # 신규 생성 ㄴ app ㄴ .. 2024. 2. 17.
[FastAPI] File Upload 구현하기 클라이언트로부터 request body를 통해 요청한 데이터를 받아서 처리할 수 있다. 이를 위한 프론트엔드 코드 예시는 아래와 같다. import axios from "axios"; const Request = async() => { const postData = { name: name, age: age }; const response = await axios.post("API END-POINT", {...postData}, { headers: { "Content-Type": "application/json" } }); return response.data } 서버에서는 각 항목을 받고, 데이터를 처리 해야하는데 그 전에 요청받은 데이터가 처리하기 위한 규칙에 맞게 들어왔는지 확인하는 작업이 필요하다... 2024. 2. 14.
[FastAPI] MongoDB Error - Type Error FastAPI 를 활용해서 아래와 같이 데이터를 넣는 도중 MongoDB에 데이터를 넣는 중 에러가 발생했다. @router.post("/") def request_regist(Create_Request: Create_Request): year, month, day = map(int, Create_Request.dead_line.split(".")) request_data = { "request_date": datetime.datetime.now() } db.tech.insert_one(request_data) return requset_data TypeError: 'ObjectId' object is not iterable 오류로 인해 DB에 데이터가 삽입되지 않았을 것으로 예상했는데, DB에는 정상적.. 2024. 2. 6.
[FastAPI] AWS DB - MySQL 연결하기 https://fastapi.tiangolo.com/tutorial/sql-databases/#create-the-relationships SQL (Relational) Databases - FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production fastapi.tiangolo.com 처음에는 하나의 DB (MongoDB)를 사용하여 작업을 하고자 구상했지만 연결된 데이터 관리와 관계형 데이터베이스 사용 경험을 위해 AWS에서 DB를 하나 생성했다. 가장 먼저, SQL 사용을 위한 패키지를 설치한다. python3 -m pip install sqlalchemy 초기 설정은 가이드 문서 그대로 .. 2023. 12. 20.
[FastAPI] Project Levup - .env (dotenv) 적용하기 프로젝트 버전을 저장 및 다른 기기에서 이어서 작업을 할 수 있도록 github에서 작업을 진행하는데 DB 연결 정보가 있다보니 commit 을 하기 전 비밀번호를 실제와 다른 것으로 저장한 후에 진행했다. 지금은 가려야 하는 것은 DB 정보 밖에 해당하지 않아서 번거롭기는 하지만 잊어버리지 않을 정도는 되지만 민감 정보가 많아지고, DB 연결이 더 많아지는 경우에 하나 하나 관리하기 어려워 진다는 문제가 있다. 이를 위해서 민감 정보를 모아두는 파일을 따로 만들고 그곳에 민감 정보를 저장, gitignore 파일에 포함시켜 commit에서 제외시킨다. 먼저, .env 파일을 불러올 수 있도록 패키지를 설치한다 python3 -m pip install python-dotenv 그 후 프로젝트 폴더 내 ... 2023. 11. 30.