flask 单个网页实现四则运算
时间: 2023-07-11 15:04:55 浏览: 42
好的,下面是实现步骤:
1. 安装 Flask 框架,可以使用命令 `pip install flask` 进行安装。
2. 在项目目录下创建一个名为 `app.py` 的 Python 文件。
3. 在 `app.py` 中导入 Flask 模块,创建一个 Flask 应用对象,代码如下:
```python
from flask import Flask
app = Flask(__name__)
```
4. 在应用对象上使用 `@app.route` 装饰器来定义一个路由,该路由对应着我们要实现的四则运算页面。
```python
@app.route('/')
def index():
return '''
<html>
<body>
<form action="/calculate" method="post">
<label>请输入第一个数:</label>
<input type="text" name="num1"><br>
<label>请输入第二个数:</label>
<input type="text" name="num2"><br>
<label>请选择运算符:</label>
<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select><br>
<input type="submit" value="提交">
</form>
</body>
</html>
'''
```
在这个路由函数中,我们返回了一个 HTML 表单,该表单包含了两个文本输入框和一个下拉列表框,用户可以在这个表单中输入两个数和选择一个运算符,然后点击提交按钮。
当用户提交表单时,将会向 `/calculate` 路由发送一个 POST 请求,我们需要在下面的步骤中实现这个路由。
5. 在应用对象上使用 `@app.route` 装饰器来定义一个新的路由,该路由对应着计算结果的页面。
```python
@app.route('/calculate', methods=['POST'])
def calculate():
num1 = float(request.form['num1'])
num2 = float(request.form['num2'])
operator = request.form['operator']
if operator == '+':
result = num1 + num2
elif operator == '-':
result = num1 - num2
elif operator == '*':
result = num1 * num2
else:
result = num1 / num2
return f'计算结果为:{result}'
```
在这个路由函数中,我们首先从表单中获取用户输入的两个数和运算符,然后根据运算符进行相应的计算,最后将计算结果返回给用户。
6. 最后,在 `app.py` 中添加以下代码来启动应用程序:
```python
if __name__ == '__main__':
app.run()
```
现在,运行这个应用程序,通过浏览器访问 `http://localhost:5000` 即可看到四则运算页面。输入两个数和选择一个运算符,点击提交按钮,即可看到计算结果页面。
完整代码如下:
```python
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
return '''
<html>
<body>
<form action="/calculate" method="post">
<label>请输入第一个数:</label>
<input type="text" name="num1"><br>
<label>请输入第二个数:</label>
<input type="text" name="num2"><br>
<label>请选择运算符:</label>
<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select><br>
<input type="submit" value="提交">
</form>
</body>
</html>
'''
@app.route('/calculate', methods=['POST'])
def calculate():
num1 = float(request.form['num1'])
num2 = float(request.form['num2'])
operator = request.form['operator']
if operator == '+':
result = num1 + num2
elif operator == '-':
result = num1 - num2
elif operator == '*':
result = num1 * num2
else:
result = num1 / num2
return f'计算结果为:{result}'
if __name__ == '__main__':
app.run()
```