웹/FastAPI

웹/FastAPI

[FastAPI] 이미지 파일 업로드하기

Uploding Image File 이미지 파일을 업로드한 뒤, 서버에서 해당 파일에 접근할 수 있는 기능을 구현하고자 했다. 많은 삽질 끝에 하긴 했지만 상당한 리팩토링이 필요할 것 같다. 1. 먼저 로컬에서 파일이 저장될 경로와 파일에 접근할 수 있는 url을 선언한다. 현재 경로는 backend/routes/menu.py고 로컬에서 파일이 저장될 경로는 backend/static/images이다. 2. 요청로부터 이미지 파일을 받기 위해 File과 UploadFile을 import한다. UploadFile은 유효성 검사를 해주는데, 에러를 검출해주기 때문에 유용하다. 3. 기존 작성해둔 스키마에선 이미지에 NULL을 허용했다. 따라서 이미지 파일이 존재하는지 확인한 후, 파일이 있다면 해당 파일을 ..

웹/FastAPI

[FastAPI] Query Parameters에 리스트 전달하기

1. Passing list in query parameters FastAPI로 개발도중 웹 페이지에서 여러 조건을 선택한 후 쿼리를 보내고자 했는데, 쿼리 매개변수에 리스트가 제대로 전달되지 않는 문제가 발생했다. 카테고리/종류/가격대: 선택할 수 있는 조건들(다중 선택 가능) -> 쿼리에 숫자형태(pk)로 전달된다. 선택한 조건에 따라 해당되는 메뉴들만 반환받고자 한다. 2. DB Router Result 정상적으로 잘 출력되는 것을 확인할 수 있다. 여담이지만 프레임워크 내에서 Swagger UI를 지원하는 점이 정말 편한 것 같다.

웹/FastAPI

[FastAPI] DB(MySQL) 연결하기

FastAPI에 MySQL을 연결하는 방법에 대해 알아보자. 프로젝트 구조는 다음과 같다. 1) 프로젝트 구조 2) secrets.json git에 비밀번호나 중요정보를 노출시키지 않기 위해 secrets.json에 해당 정보들을 모아둘 생각이다. 꼭 .gitignore파일에 secrets.json을 추가시켜야 한다. user: 유저 이름 password: 비밀번호 host: 호스트 주소 port: 포트번호 database: 스키마 이름 2) database.py MySQL에 연결시키기 위해 sqlalchemy와 pymysql모듈을 설치해준다. $pip install sqlalchemy $pip install pymysql DB_URL은 "mysql+pymysql://[유저이름]:[비밀번호]@[호스트주소..

웹/FastAPI

[FastAPI] FastAPI란?

1. FastAPI란? 파이썬 3.6+를 기반으로 빠르게 API 서버를 구축할 수 있게 하는 새로운 웹 프레임워크이다. Django에 비해 가벼우면서도 빠른 속도를 자랑한다. 2. 주요 특징 NodeJS 및 Go와 비슷한 성능, 현존하는 파이썬 웹 프레임워크 중 가장 빠르다. 개발 속도가 빠르다 버그가 적다. 직관적이다 간편하다. 코드 중복을 최소화한다. 견고하다, 대화형 자동 설명서를 사용해서 실행 가능한 코드를 구축할 수 있다. 개방형 API 표준(OpenAPI&JSON)을 기반으로 한다. Django나 Flask 등 기존 파이썬 웹 프레임워크에 비해 레퍼런스는 적지만, 공식문서가 아주 잘 되어있다. 앞으로 FastAPI를 이용해 프로젝트를 진행할 생각이고 관련된 내용을 블로그에 업로드할 예정이다. ..

코택
'웹/FastAPI' 카테고리의 글 목록