功能说明
- 前端提供两个数字输入框,支持整数和小数
- 提供加减乘除四种运算选择
- 点击 "计算结果" 按钮或按回车键触发计算
- 结果区域会显示完整的计算表达式和结果
- 包含错误处理,如输入无效、除数为零等情况
使用说明
1.首先确保安装了必要的依赖
pip install fastapi uvicorn
2.将后端代码保存为main.py
3.启动后端服务,使其可以接收同一网段的请求:
uvicorn main:app --host 0.0.0.0 --port 8000
--host 0.0.0.0参数确保服务器可以接收来自同一网段其他设备的请求
前端配置
-
将前端代码保存为
calculator.html -
编辑前端代码中的
API_URL,将其替换为你的后端服务器在局域网中的 IP 地址,
例如:const API_URL = 'http://192.168.1.105:8000/calculate';
你可以通过在服务器上运行ipconfig(Windows) 或ifconfig(Linux/Mac) 来查看其局域网 IP
在同一网段的任何设备上打开calculator.html文件即可使用计算器
后端 FastAPI 应用
from fastapi import FastAPI
from pydantic import BaseModel
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
# 允许跨域请求,特别是来自同一网段的前端
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 允许所有来源,实际生产环境应指定具体域名
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# 定义请求体模型
class CalculationRequest(BaseModel):
num1: float
num2: float
operation: str
# 定义计算结果模型
class CalculationResult(BaseModel):
result: float
error: str = ""
@app.post("/calculate", response_model=CalculationResult)
async def calculate(request: CalculationRequest):
try:
num1 = request.num1
num2 = request.num2
operation = request.operation
if operation == "add":
result = num1 + num2
elif operation == "subtract":
result = num1 - num2
elif operation == "multiply":
result = num1 * num2
elif operation == "divide":
if num2 == 0:
return CalculationResult(result=0, error="除数不能为零")
result = num1 / num2

最低0.47元/天 解锁文章
2457

被折叠的 条评论
为什么被折叠?



