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

Gemfile

Blame
  • server.py 769 B
    from calculator.calculator import Calculator
    from fastapi import FastAPI
    from fastapi.requests import Request
    from fastapi.templating import Jinja2Templates
    
    app = FastAPI()
    templates = Jinja2Templates(directory="calculator/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)