使用 FastAPI 作为后端,接收同一网段的请求,并创建一个简单的前端页面进行交互

功能说明

  • 前端提供两个数字输入框,支持整数和小数
  • 提供加减乘除四种运算选择
  • 点击 "计算结果" 按钮或按回车键触发计算
  • 结果区域会显示完整的计算表达式和结果
  • 包含错误处理,如输入无效、除数为零等情况

使用说明

1.首先确保安装了必要的依赖

        pip install fastapi uvicorn

2.将后端代码保存为main.py

3.启动后端服务,使其可以接收同一网段的请求:

uvicorn main:app --host 0.0.0.0 --port 8000

--host 0.0.0.0参数确保服务器可以接收来自同一网段其他设备的请求

前端配置

  1. 将前端代码保存为calculator.html

  2. 编辑前端代码中的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
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值