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

app.py

python 复制代码
import flask
from flask import Flask, render_template, request
# 计算精确的浮点结果,float加法也计算不出来
from decimal import Decimal

app = 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)
    # 输入的两个数和运算符,结果初始为0

    if 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 / num2
        else:
            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

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

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

实现效果

支持小数点计算

相关推荐
沐晓时光19 小时前
C语言入门,内存函数知识讲解
c语言·开发语言
用户956256254291 天前
跟做:Firecrawl 单页转 Markdown 再丢进沙箱总结
python·api
威哥爱编程1 天前
模拟面试智能体开发实战 02:回答等半分钟,谁还愿意练?把服务端和流式输出搭起来
python·agent·harmonyos
威哥爱编程1 天前
模拟面试智能体开发实战 01:面试挂了都不知道挂在哪?用 Python 给自己造一个随叫随到的 AI 面试官
python·agent·harmonyos
2601_967980111 天前
Python行情API量化 02:顺序拉 20 要 2 秒?并发批量把时间压到 0.5 秒
python·api·限流·并发·量化
伞伞悦读1 天前
【第81期】特征缩放怎么选:标准化、MinMax 与 Robust 的原理、泄漏对照和完整实验
人工智能·python·深度学习·机器学习
新*1 天前
从一段 WebSocket 代码聊开:bytes 不是 zlib、binaryType 决定一切,15MB 大消息的零拷贝优化
javascript·python·websocket·性能优化·blob·zlib·arraybuffer
David猪大卫1 天前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
卷无止境1 天前
mathmodel-figure-templates 以及两个上手案例
后端·python
fengci.1 天前
CTF2MISC中等部分
开发语言·前端·学习