--- /dev/null
+from fastapi import FastAPI, Request, Form
+from fastapi.responses import HTMLResponse
+from fastapi.templating import Jinja2Templates
+
+app = FastAPI()
+templates = Jinja2Templates("templates")
+
+@app.get("/", response_class=HTMLResponse)
+def index(request: Request):
+ context = {"request": request}
+ response = templates.TemplateResponse("index.html", context)
+
+ return response
+
+@app.post("/transforminate")
+def transforminate(request: Request, favnum: float = Form(...)):
+ output = favnum/3.14159
+ context = {"request": request, "output": output}
+ response = templates.TemplateResponse("result.html", context)
+
+ return response
+
+if __name__ == "__main__":
+ import uvicorn
+
+ uvicorn.run(app, host="localhost", port=8001)
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html><body>
+ <p>Plug in your favorite number and we'll pass it through the useless number transforminator</p>
+ <form action="/transforminate" method="post">
+ <label for="favnum">Your fav number:</label>
+ <input type="number" id="favnum" name="favnum" required>
+ <button type="submit">transforminate!</button>
+ </form>
+</body></html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html><body>
+ <p>Behold! Your useless number transforimnator-inated number is {{output}} !</p>
+ <a href="/">Do it again, do it again!</a>
+</body></html>
\ No newline at end of file