如何使用 Python 和 PyWebio 创建 BMI 计算器 Web 应用?
PyWebio 是一个 Python 库,可用于构建需要更简单 UI 的 Web 应用程序。它提供了一些函数来创建简单的 Web 浏览器。任何人都可以使用 PyWebio 构建简单的 Web 应用程序,而无需事先了解 HTML 和 JavaScript。
本教程将说明两种创建 Web 计算 BMI 的方法。体重指数 (BMI) 根据体重和身高测量体脂。它通常用于确定一个人是体重过轻、正常、超重还是肥胖。
示例
在此示例中,我们定义了一个“BMICalculator”类,其中包含计算和分类 BMI 所需的所有方法。“__init__”方法将对象的属性初始化为 None。
接下来,我们使用了“get_user_inputs()”方法,该方法使用“input()”函数获取用户的 身高和体重。然后,“calculate_bmi()”方法使用公式计算 BMI,并将结果四舍五入到小数点后两位。“classify_weight_category()”方法使用 if-elif-else 语句根据计算出的 BMI 对用户的体重类别进行分类。“display_results()”方法使用“put_text()”函数向用户显示 BMI 和体重类别。
最后,我们定义了“calculate_bmi()”函数,该函数创建 BMICalculator 类的实例,依次调用其方法,并将结果显示给用户。此函数用作 PyWebIO 应用程序的入口点。
from pywebio.input import input, FLOAT from pywebio.output import put_text class BMICalculator: def __init__(self): self.height = None self.weight = None self.bmi = None self.classification = None def calculate_bmi(self): # Get user's height and weight self.height = input("Please enter your height in meters (m):", type=FLOAT) self.weight = input("Please enter your weight in kilograms (kg):", type=FLOAT) # Calculate BMI self.bmi = self.weight / (self.height ** 2) # Determine BMI classification if self.bmi < 16: self.classification = "Severely underweight" elif self.bmi < 18.5: self.classification = "Underweight" elif self.bmi < 25: self.classification = "Normal (healthy weight)" elif self.bmi < 30: self.classification = "Overweight" elif self.bmi < 35: self.classification = "Moderately obese" else: self.classification = "Severely obese" # Display results to the user put_text("Based on your height of {}m and weight of {}kg, your BMI is {:.1f}. This means you are classified as {}.".format(self.height, self.weight, self.bmi, self.classification)) # Create BMICalculator object bmi_calculator = BMICalculator() # Calculate BMI and display results bmi_calculator.calculate_bmi()
输出
运行上述 Python 脚本时,它将打开一个新窗口,如下所示:
输入您的身高(米),然后点击“提交”按钮。点击“提交”按钮后,将显示以下屏幕:
现在,输入您的体重(公斤),然后再次点击“提交”按钮。点击“提交”按钮后,将显示以下结果:
Based on your height of 1.7m and weight of 65kg, your BMI is 22.5. This means you are classified as Normal (healthy weight).
示例
这是创建 BMI Web 应用的另一种简单方法。在此示例中,我们定义了“calculate_bmi()”函数,该函数提示用户输入他们的身高和体重。然后,它使用公式 weight / (height/100) ^2 计算 BMI,将其四舍五入到小数点后两位,并使用“put_text()”函数显示结果。接下来,它使用一系列 if 语句根据计算出的 BMI 确定体重类别。
最后,我们使用“start_server()”函数启动 Web 应用并显示 BMI 计算器。然后,我们将 Web 应用的标题设置为“BMI 计算器”,并将“计算”按钮上的文本设置为“计算 BMI”。
from pywebio.input import * from pywebio.output import * from pywebio import start_server def calculate_bmi(): height = input("Enter your height (in cm)", type=FLOAT) weight = input("Enter your weight (in kg)", type=FLOAT) bmi = weight / ((height/100) ** 2) bmi = round(bmi, 2) weight_category = "" if bmi < 18.5: weight_category = "underweight" elif 18.5 <= bmi <= 24.9: weight_category = "normal weight" elif 25 <= bmi <= 29.9: weight_category = "overweight" else: weight_category = "obese" put_text("Your BMI is: %s" % bmi) put_text("You have a %s" % weight_category) if __name__ == '__main__': start_server(calculate_bmi, port=80, debug=True, title="BMI Calculator", button_text="Calculate BMI")
输出
运行上述 Python 脚本时,它将打开一个新窗口,如下所示:
输入您的身高(米),然后点击“提交”按钮。点击“提交”按钮后,将显示以下屏幕:
现在,输入您的体重(公斤),然后再次点击“提交”按钮。点击“提交”按钮后,将显示以下结果:
Your BMI is: 21.22 You have a normal weight
我们了解到 Pywebio 是一个用于创建简单 Web 应用程序的强大库。开发人员可以轻松地创建需要更简单 UI 的 Web 应用程序。它提供输入/输出函数来处理 Python 变量和网页元素之间的转换,从而可以轻松构建交互式 Web 界面。PyWebIO 的主要优势之一是易用性。我们可以通过安装库并将必要的函数导入到 Python 代码中来快速开始。PyWebIO 还提供各种内置小部件,例如文本框、下拉菜单和按钮,这些小部件可以轻松地集成到 Web 应用程序中。它支持多种 Web 框架,包括 Flask、Django 和 Tornado,这使得它易于与现有的 Python Web 应用程序集成。