반응형
Index |
1. FastAPI |
2. 환경설정 |
3. Tutorial |
4. 주요 개념 |
Reference |
1. FastAPI
FastAPI
- FastAPI는 현대적이고, 빠르며(고성능), 파이썬 표준 타입 힌트에 기초한 Python3.8+의 API를 빌드하기 위한 웹 프레임워크
(특징)
- 빠른 코드 작성
- 적은 버그
- 직관적이고 쉬움
- 대화형 API 제공(Swagger UI)
- 대안 API 제공
- 프로덕션을 위해 Uvicorn, Hypercorn 이용
2. 환경설정
환경설정
1. Python 버전 설정
# conda create -n <환경명> python=<버전>
conda create -n fastapi python=3.10
2. 가상환경 실행
# conda activate <환경명>
conda activate fastapi
3. fastapi설치
pip install fastapi
4. 실행 확인
1) fastapi 예시 코드 작성
# app.py
from fastapi import FastAPI, Request
import uvicorn
app = FastAPI()
@app.get("/")
def home(request: Request):
return {"name": "Hello World"}
if __name__=="__main__":
uvicorn.run(app, "127.0.0.1", port=8080)
2) terminal에서 서버 실행
# 서버 실행
python app.py
3) 웹 브라우저에서 localhost:8080로 접속
- localhost는 127.0.0.1을 의미
3. Tutorial
Tutorial
1. 프로젝트 구조
fastapi(directory)
- templtates(directory)
- index.html(file)
- test.html(file)
- app.py(file)
2. html 파일 작성
# index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Main Page</title>
</head>
<body>
<nav>
<ul>
<li><a href="/"></a>Home</li>
<li><a href="/test">Test</a></li>
</ul>
</nav>
<h1> Main Page </h1>
<p> Welcome to Main Page </p>
{{}}
</body>
</html>
# test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test Page</title>
</head>
<body>
<nav>
<ul>
<li><a href="/"></a>Home</li>
<li><a href="/test">Test</a></li>
</ul>
</nav>
<h1> Test Page </h1>
<p> {{ context }} </p>
</body>
</html>
3. app.py 작성
# app.py
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
import uvicorn
app = FastAPI()
templates = Jinja2Templates(directory="templates")
@app.get("/")
def home(request: Request):
return templates.TemplateResponse(name="index.html",{"request": request})
@app.get("/test")
def home(request: Request):
return templates.TemplateResponse(name="test.html",{"request": request, "context": "Welcome to Test"})
if __name__=="__main__":
uvicorn.run(app, "127.0.0.1, port=8080)
4. 서버 실행
python app.py
5. 웹 브라우저에서 127.0.0.1:8080으로 접속 확인
4. 주요 개념
주요 개념
Response
- HTTP Method: (Get / Post / Put / Delete)
- from fastapi import FastAPI, Response
HTML Template
- 웹 페이지 템플릿
- Jinja 사용
- fastapi.templating.Jinja2Templates
Database
- ORM
- from sqlmodel import Field, Session, SQLModel, create_engine
- sqlalchemy
Reference
[Site: FastAPI(Home)] https://fastapi.tiangolo.com/ko/ |
[Docs: FastAPI(Tutorial)] https://fastapi.tiangolo.com/ko/learn/ |
[Docs: FastAPI(Reference)] https://fastapi.tiangolo.com/ko/reference/ |
반응형
'Web Framework > FastAPI' 카테고리의 다른 글
[FastAPI] 학습 참고자료 (0) | 2024.02.22 |
---|