当前位置: 首页 > news >正文

【pythonflask-1】简单实现加减乘除输入界面

app.py

import flask
from flask import Flask, render_template, request
# 计算精确的浮点结果,float加法也计算不出来
from decimal import Decimalapp = Flask(__name__)@app.route('/')
def home():return render_template('index.html')@app.route('/calculate', methods=['POST'])
# POST请求处理用户提交的数据
def calculate():num1 = Decimal(request.form['num1'])num2 = Decimal(request.form['num2'])operation = request.form['operation']result = Decimal(0)# 输入的两个数和运算符,结果初始为0if operation == 'add':result = num1 + num2# 加elif operation == 'subtract':result = num1 - num2# 减elif operation == 'multiply':result = num1 * num2# 乘elif operation == 'divide':if num2 != Decimal(0):result = num1 / num2else:return "错误:分母不能为0"# 除result = round(result,4)# 保留四位小数return render_template('result.html', num1=num1, num2=num2, operation=operation, result=result)# 然后将计算结果和输入的两个参数返回给result.html渲染
if __name__ == '__main__':app.run(debug=True)

templates文件夹

index.html

<!DOCTYPE html>
<html>
<head><title>在线计算器</title>
</head>
<body><h1>在线计算器</h1><form action="/calculate" method="POST"><!-- 获得请求 --><input type="text" name="num1" required><select name="operation" required><option value="add">+</option><option value="subtract">-</option><option value="multiply">*</option><option value="divide">/</option><!-- 加减乘除的操作 --></select><input type="text" name="num2" required><button type="submit">开始计算</button><!-- 提交表单 --></form>
</body>
</html>
<!-- type="number" 时,浏览器会为输入字段提供一些额外的验证和用户界面上的增强功能,
例如限制输入为数值、显示数值调节器控件等。 -->

result.html

<!DOCTYPE html>
<html>
<head><title>计算结果</title>
</head>
<body><h1>计算结果</h1><p>{{ num1 }} {{ operation }} {{ num2 }} = {{ result }}</p><!-- 执行相关的计算操作的变量 -->
</body>
</html>

实现效果

支持小数点计算

http://www.lryc.cn/news/165885.html

相关文章:

  • 基于协同过滤算法的旅游推荐系统
  • 遇见问题:使用mybaties向数据库中插入数据,idea显示插入成功,但是数据库中并没有数据变化?
  • markdown学习笔记
  • C++项目实战——基于多设计模式下的同步异步日志系统-⑧-日志落地类设计
  • 从零开始探索C语言(八)----指针
  • SpringMVC 的三种异常处理方式详解
  • 莫比乌斯召回系统介绍
  • 使用ASM修改组件化 ARouter
  • 第21章_瑞萨MCU零基础入门系列教程之事件链接控制器ELC
  • (二十八)大数据实战——Flume数据采集之kafka数据生产与消费集成案例
  • vue3:22、vue-router的使用
  • 深入理解JVM虚拟机第五篇:一些常用的JVM虚拟机(二)
  • 导数公式及求导法则
  • SpringMVC系列(六)之JSON数据返回以及异常处理机制
  • 民安智库(北京第三方窗口测评)开展汽车消费者焦点小组座谈会调查
  • 【CVPR2021】MVDNet论文阅读分析与总结
  • IDEA指定Maven settings file文件未生效
  • swift UI 和UIKIT 如何配合使用
  • c语言练习题55:IP 地址⽆效化
  • nvidia-persistenced 常驻
  • leetcode 42, 58, 14(*)
  • SpringCloud-微服务CAP原则
  • K8S:Yaml文件详解
  • 机器人连续位姿同步插值轨迹规划—对数四元数、b样条曲线、c2连续位姿同步规划
  • 三维模型3DTile格式轻量化压缩的遇到常见问题与处理方法分析
  • 2023-简单点-开启防火墙后,ping显示请求超时;windows共享盘挂在不上
  • 华为Java工程师面试题
  • 大数据Flink(七十四):SQL的滑动窗口(HOP)
  • Hystrix和Sentinel熔断降级设计理念
  • 获取Windows 10中的照片(旧版)下载