Link
import csv
import random
from fastapi import FastAPI
from starlette.staticfiles import StaticFiles
from starlette.templating import Jinja2Templates
from starlette.requests import Request


app = FastAPI()
templates = Jinja2Templates(directory="templates")
app.mount("/static", StaticFiles(directory="static"), name="static")


@app.get("/")
async def read_root(request: Request):
    with open("courses.csv", "r") as f:
        reader = csv.DictReader(f)
        random_course = random.choice(list(reader))
        info = ""
        for i in random_course:
            info += (
                "<tr>"
                + "<th>"
                + i
                + "</th>"
                + "<td>"
                + random_course[i]
                + "</td>"
                + "</tr>"
            )
        # return render_template('index.html', course_info=info)
        return templates.TemplateResponse(
            "index.html", {"request": request, "course_info": info}
        )


@app.get("/{department}")
async def read_item(request: Request, department: str):
    with open("courses.csv", "r") as f:
        reader = csv.DictReader(f)
        info = ""
        for row in reader:
            if department in row["department"]:
                for i in row:
                    info += (
                        "<tr>"
                        + "<th>"
                        + i
                        + "</th>"
                        + "<td>"
                        + row[i]
                        + "</td>"
                        + "</tr>"
                    )
        # return render_template('index.html', course_info=info)
        return templates.TemplateResponse(
            "index.html", {"request": request, "course_info": info}
        )