Хабр Курсы для всех
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!
В ЧерриПае аргументы парсятся автоматически (вроде, даже типы приводятся). Т.е., там ваш ugly_calc будет совсем не такой ugly :-)
@app.route('/calc/<int:x>/')
def pathed_calc(x, y:Arg(int), op:Arg(str, default='+')):
return str(OPERATION[op](x, y))
Один вариант использования аннотаций