要实现“不需要登录即可根据订单号或电子邮件地址查询订单状态”的功能,可以使用以下代码示例:
from flask import Flask, request, jsonify
app = Flask(__name__)
orders = [
{
"order_id": "12345",
"email": "example@example.com",
"status": "pending"
},
{
"order_id": "67890",
"email": "test@test.com",
"status": "shipped"
}
]
@app.route("/order_status", methods=["GET"])
def get_order_status():
order_id = request.args.get("order_id")
email = request.args.get("email")
if order_id:
order = next((order for order in orders if order["order_id"] == order_id), None)
if order:
return jsonify({"status": order["status"]})
else:
return jsonify({"error": "Order not found"}), 404
if email:
order = next((order for order in orders if order["email"] == email), None)
if order:
return jsonify({"status": order["status"]})
else:
return jsonify({"error": "Order not found"}), 404
return jsonify({"error": "Invalid request"}), 400
if __name__ == "__main__":
app.run()
这是一个使用 Flask 框架的简单示例。首先,我们定义了一个包含订单信息的列表。然后,我们创建了一个名为 /order_status 的路由,用于处理查询订单状态的请求。客户可以通过提供订单号或电子邮件地址来查询订单状态。
在函数 get_order_status 中,我们使用 request.args.get 方法来获取 GET 请求中的参数。如果提供了订单号,我们通过列表推导式在订单列表中查找匹配的订单,并返回其状态。如果提供了电子邮件地址,我们同样使用列表推导式来查找匹配的订单,并返回其状态。如果没有提供有效的参数,我们返回一个错误消息。
最后,我们通过 app.run() 来运行 Flask 应用程序,并监听来自客户端的请求。
请注意,这只是一个简单的示例代码,实际情况下可能需要根据具体需求进行修改和改进。