/
Russid
/
python_advanced
Обзор
Документация
Войти
/
Russid
/
python_advanced
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
module_06_debugging_begin/materials/math_service.py
58 строк
1 KB
sergei.krotov
Added materials (module_06)
10 сен 2020, 23:16
10 сен 2020, 23:16
5b8e1aa
Код
Авторство
О чём код?
import math from flask import Flask from flask_wtf import FlaskForm from wtforms import FloatField, IntegerField from wtforms.validators import InputRequired app = Flask(__name__) class Formula1Form(FlaskForm): x = FloatField(validators=[InputRequired()]) class Formula2Form(FlaskForm): x = FloatField(validators=[InputRequired()]) n = IntegerField(validators=[InputRequired()]) @app.route("/formula1/", methods=["POST"]) def formula1(): form = Formula1Form() if form.validate_on_submit(): x: float = form.x.data result = math.sin(x) / x return f"sin({x}) / {x} = {result}" return f"Bad request. Error = {form.errors}", 400 @app.route("/formula2/", methods=["POST"]) def formula2(): form = Formula2Form() if form.validate_on_submit(): x, n = form.x.data, form.n.data result: float = 0.0 for i in range(1, n + 1): result += 1.0 / (i * x) return f"Your result is {result}" return f"Bad request. Error = {form.errors}", 400 @app.errorhandler(ZeroDivisionError) def handle_exception(e: ZeroDivisionError): return "We are unable to divide by zero!", 400 if __name__ == "__main__": app.config["WTF_CSRF_ENABLED"] = False app.run()