Skip to content
Snippets Groups Projects
Select Git revision
  • cb4f46b3bfed03acb1b930334cfb91bd4971096a
  • master default
2 results

InvertIndex2

Blame
  • server.py 804 B
    """
    Server module for the web calculator.
    """
    from fastapi import FastAPI
    from fastapi.requests import Request
    from fastapi.templating import Jinja2Templates
    from calculator.calculator import Calculator
    
    app = FastAPI()
    templates = Jinja2Templates(directory="templates")
    calc = Calculator()
    
    @app.get("/")
    async def root(request: Request):
        """
        Default and only route of the web calculator.
        Expects either no query parameters or a single query parameter named "expression".
        """
        expression = request.query_params.get("expression", "")
        context = {"request": request}
        if expression:
            result = calc(expression)
            context = {"request": request,
                       "expression": expression, "result": result}
        return templates.TemplateResponse("index.html", context)