题目
实现一个简单的Web应用程序,该应用程序可以接受用户输入的数字,并将其加到一个列表中。用户可以通过访问特定的URL来查看列表中所有数字的和。
要求:
- 使用Python编写Web应用程序。
- 使用一个全局变量来保存数字的列表,并且该变量可以通过不同的函数进行读写。
- 实现两个URL:一个用于接受用户输入数字的POST请求,一个用于返回列表中所有数字的和的GET请求。
- 实现合适的错误处理机制,包括但不限于:请求方法不支持、非法输入等。
- 使用适当的框架或库来简化Web开发过程。
请编写代码实现上述要求,并在回答中给出你的解答。
最简答案
- 首先,我们可以使用 Flask 框架来简化Web应用程序的开发过程。
- 创建一个全局变量列表来保存用户输入的数字。
- 实现一个POST请求的路由,用于接受用户输入的数字,并将其加入列表中。
- 实现一个GET请求的路由,用于返回列表中所有数字的和。
- 在处理请求时,需要对用户输入进行合法性验证,并对错误情况进行适当的处理。
代码如下:
代码语言:javascript复制from flask import Flask, request
app = Flask(__name__)
numbers = []
@app.route('/add', methods=['POST'])
def add_number():
try:
number = int(request.form['number'])
numbers.append(number)
return 'Number added successfully'
except ValueError:
return 'Invalid input: must be an integer'
except:
return 'Internal Server Error'
@app.route('/sum', methods=['GET'])
def get_sum():
return str(sum(numbers))
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5000)
使用方法:
- 使用pip安装Flask库:
pip install flask
- 将上述代码保存为一个Python文件,比如
test01.py
。 - 运行应用程序:
python test01.py
- 可以使用POST请求发送数字到
http://localhost:5000/add
,比如使用cURL命令:curl -X POST -d "number=5" http://localhost:5000/add
。 - 可以使用GET请求获取数字的和,访问
http://localhost:5000/sum
。
这样,用户就可以通过POST请求将数字添加到列表中,然后通过GET请求获取列表中所有数字的和。