cgi 实现简易的计算器
时间: 2024-10-23 22:13:31 浏览: 15
CGI (Common Gateway Interface) 是一种让Web服务器执行外部应用程序的标准协议。如果你想通过CGI实现一个简易的计算器,你可以按照以下步骤操作:
1. 创建HTML表单:首先,在HTML文件中创建一个简单的计算器界面,包括输入框、数字按钮、运算符按钮以及提交按钮。
```html
<!DOCTYPE html>
<html>
<body>
<form action="calculator.cgi" method="post">
<input type="text" name="num1" placeholder="Number 1">
<input type="text" name="operator" style="display:none;">
<input type="text" name="num2" placeholder="Number 2">
<br>
<button type="button" onclick="updateOperator('+')">+</button>
<button type="button" onclick="updateOperator('-')">-</button>
<button type="button" onclick="updateOperator('*')">*</button>
<button type="button" onclick="updateOperator('/')">/</button>
<br>
<input type="submit" value="Calculate">
</form>
<script>
function updateOperator(op) {
document.querySelector('input[name=operator]').value = op;
}
</script>
</body>
</html>
```
2. 编写 CGI脚本 (如calculator.cgi):这是一个Python示例,实际应用中可以根据你选择的语言来编写。这个脚本会从表单数据获取用户输入并执行相应的计算。
```python
#!/usr/bin/env python3
import cgi
import cgitb
cgitb.enable()
# 获取POST请求的数据
form = cgi.FieldStorage()
num1 = form.getvalue('num1')
num2 = form.getvalue('num2')
operator = form.getvalue('operator')
# 根据运算符执行计算
if operator == '+':
result = float(num1) + float(num2)
elif operator == '-':
result = float(num1) - float(num2)
elif operator == '*':
result = float(num1) * float(num2)
else: # '/'
if num2 != '0':
result = float(num1) / float(num2)
else:
result = "Error! Division by zero."
print("Content-Type: text/html")
print()
print(f"<h2>Result: {result}</h2>")
```
3. 配置 Web服务器:将上述CGI脚本设置为允许执行,并配置好 Web 服务器(如Apache或Nginx),使其知道如何处理来自 .cgi 文件的请求。
当你访问包含此计算器HTML页面的URL时,它会在服务器上运行CGI脚本来计算结果并返回到浏览器。
阅读全文