본문 바로가기
반응형

backend5

[FastAPI] 이미지 파일 업로드 하기 백엔드 서버에 이미지 파일을 저장해야 하는 일이 있다. 가령 게시판에 사진을 올린다던지. 헌데 이미지파일을 DB에 저장하면 DB 쿼리 성능을 저하시킨다. 이때문에 서버에 이미지를 저장할 때에는 서버의 파일 시스템에 이미지를 저장 DB에는 이 파일의 URL만 저장해야한다 아래는 FastAPI에 파일을 저장하는 예제이다. 파일 파라미터에는 UploadFile을 사용한다 그리고 파일명이 중복되지 않도록 파일명을 저장되는 시간 + 임의의 램덤해시값으로 저장한다. from fastapi import UploadFile, File BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STATIC_DIR = os.path.join(BASE_DI.. 2021. 12. 13.
Fast API 배우기 22부 - CORS CORS란(Cross Origin Resource Sharing) CORS란 프론트엔드가 백엔드와 소통하는 자바스크립트 코드를 가지고 있는데, 백엔드와 프론트엔드의 Origin이 다를 때 생기는 상황이다. 보통 이런상황이면 저 자바스크립트 코드가 실행이 안된다. 그럼 어떻게 해결해야 할까? Origin이란? origin이란 protocol(http, https) + domain(myapp.com, localhost, localhost.tiangolo.com) + port(80,443,8080) 을 의미한다. http://127.0.0.1:8000/ 요런거 가령 모든 프론트엔드 백엔드가 localhost에 있어도, 포트번호가 다르면 다른 Origin이다. 자 예시를 들자. 당신이 프론트엔드를 http://.. 2021. 11. 5.
Fast API 배우기 9부 - Extra Data Types 지금까지 봐 온 데이터 타입은 아래와 같다. int float str bool 하지만 Fast API는 훨 씬 더 많은 데이터 타입을 제공한다. UUID: "Universally Unique Identifier"의 약자 이다., 많은 데이터베이스 시스템에서 id로 사용된다. request와 response는 전부 str로 표현된다. datetime.datetime: 파이썬의 datetime.datetime. request와 response에서 str로 표현된다. ISO 8601 format을 따른다. ex: 2008-09-15T15:53:00+05:00. datetime.date: 파이썬의 datetime.date. request와 response에서 str로 표현된다. ISO 8601 format을 따.. 2021. 11. 1.
Fast API 배우기 8부 - Example Data 넣기 Example Data 넣기 모델에 Confg 클래스를 정의한뒤 schema_extra 에 값을 넣으면 example 데이터를 넣을 수 있다. from typing import Optional from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class Item(BaseModel): name: str description: Optional[str] = None price: float tax: Optional[float] = None class Config: schema_extra = { "example": { "name": "Foo", "description": "A very nice Item", "price": 35.4.. 2021. 11. 1.
Fast API 배우기 7부 - Field 클래스 Field 클래스란 쿼리 파라미터를 Query클래스로 다루고 패스 파라미터를 Path클래스로 다루고 리퀘스트 바디를 Body 클래스로 다루듯이 리퀘스트 바디 안에 있는 Metadata를 Feild 클래스로 세세하게 다룰 수 있다 from typing import Optional from fastapi import Body, FastAPI from pydantic import BaseModel, Field app = FastAPI() class Item(BaseModel): name: str description: Optional[str] = Field( None, title="The description of the item", max_length=300 ) price: float = Field(...,.. 2021. 11. 1.
반응형