Back-end & Server (52) 썸네일형 리스트형 [FastAPI] Template 🐰 FastAPI 공식문서를 보면서 개인적으로 정리한 글 입니다. html에 jinja2 Template을 사용할 수 있다. context를 사용하여 편하게 페이지를 꾸밀 수 있다. pip install jinja2 templates 폴더와 static 폴더를 만든다. templates 폴더에는 html 파일을 static 폴더에는 정적 파일을 넣는다. Item ID: {{ id }} StaticFiles를 사용하여 정적 파일(css, js, img, ...)을 관리할 수 있다. StaticFiles를 import하고 app에 특정경로에 StaticFiles() 인스턴스를 Mount한다. from fastapi import FastAPI from fastapi.staticfiles import Stati.. [FastAPI] Background Task 🐰 FastAPI 공식문서를 보면서 개인적으로 정리한 글 입니다. FastAPI에서 Back Ground Task는 무거운 작업을 Back Ground로 돌려서 처리할 때 사용한다. ex. 작업 수행후 이메일 전송, 데이터 처리 이러한 작업들은 별도로 천천히 처리해도 되는 작업들에게 사용한다. * 엄청 무거운 작업들은 완전 별도(Multi Processing)로 처리하는 것이 좋다. 사용방법은 fastapi에 BackgroundTasks 개체에 add_task()에 작업(함수)을 매개변수로 전달한다. 백그라운드 작업에 대한 의존성도 추가할 수 있다. from typing import Union from fastapi import BackgroundTasks, Depends, FastAPI app = Fa.. [FastAPI] 파일 분할 🐰 FastAPI 공식문서를 보면서 개인적으로 정리한 글 입니다. FastAPI로 코드를 작성할 때 기능이 많고 규모가 크면 코드 관리가 힘들다. 이때는 파일을 분할하여 관리하는 것이 바람직하다. 다음과 같이 파일을 분리한다. routers - API 엔드포인트 from fastapi import APIRouter router = APIRouter() @router.get("/users/", tags=['users']) async def read_items(): return [{'username': 'Abdule'}, {'username': 'Bubi'}, {'username': 'Collson'}] @router.get("/users/me", tags=['users']) async def read_us.. [FastAPI] Relational Database 🐰 FastAPI 공식문서를 보면서 개인적으로 정리한 글 입니다. 먼저 DB를 준비한다. 이 포스트에서는 MariaDB를 사용한다. DB의 내용은 다음과 같다. DB명 : test Table 명 : User idUser username password nickname 1 admin1 SHA2(admin1,256) Admin1 2 admin2 SHA2(admin2,256) Admin2 3 pupba12 SHA2(qwer1234,256) Pupba ORM(Object-Relational Mapping) FastAPI는 ORM을 SQLAlchemy를 사용해 구현한다. pip install sqlalchemy 만든 ORM 모듈의 구조는 다음과 같다. 1. SQLAlchemy - database.py from .. [FastAPI] 미들웨어 🐰 FastAPI 공식문서를 보면서 개인적으로 정리한 글 입니다. 미들웨어를 FastAPI 응용 프로그램에 추가할 수 있다. "미들웨어"는 특정 경로 작동에 의해 처리되기 전, 모든 요청에 대해서 동작하는 함수, 모든 응답이 반환되기 전에도 동일하게 동작 응용 프로그램으로 오는 요청을 가져온다. 요청 또는 다른 필요한 코드를 실행 시킬 수 있다. 요청을 응용 프로그램의 경로 작동으로 전달하여 처리한다. 애플리케이션의 경로 작업에서 생성한 응답을 받는다. 응답 또는 다른 필요한 코드를 실행시키는 동작을 할 수 있다. 응답을 반환한다. 미들웨어 만들기 함수 상단에 @app.middleware("http") 데코레이터를 사용할 수 있다. import time from fastapi import FastAPI,.. 이전 1 2 3 4 5 6 7 ··· 11 다음