ksyke 2024. 11. 29. 17:58

main.py

from fastapi.responses import HTMLResponse

import fastapi
from fastapi.templating import Jinja2Templates
from fastapi import Request

import dept

app=fastapi.FastAPI()
templates=Jinja2Templates(directory="templates")

app.include_router(dept.router)

@app.get("/")
def index(request: Request):
    # return {"key1":"val1"}
    # return ["item1","item2"]
    # return HTMLResponse("<h1>메인 페이지입니다.</h1>")
    return templates.TemplateResponse('index.html',{"request":request})

@app.get("/intro",response_class=HTMLResponse)
def intro():
    return "<img src='https://www.inje.ac.kr/kor/assets/images/sub/gimhae-campus-1-241008.jpg'/>"

dept.py

import mysql.connector
from fastapi import APIRouter

router=APIRouter(prefix='/dept')

mydb=mysql.connector.connect(
  host="localhost",
  user="scott",
  password="tiger"
)
@router.get("/")
def list():
    mycursor=mydb.cursor()
    sql="select * from dept"
    mycursor.execute(sql)
    data=list(mycursor.fetchall())
    mycursor.close()
    return data

@router.post("/add")
def add(deptno:int,dname:str,loc:str):
    val=(deptno,dname,loc)

    mycursor=mydb.cursor()
    sql="insert into dept values ({},'{}','{}'}".format(deptno,dname,loc)
    mycursor.execute(sql)
    mydb.commit()
    mycursor.close()
    return val

post 방식 테스트하기

템플릿 사용하기