在Python中解析服务器端的请求参数

问题描述 投票:0回答:1

我有一个托管在云服务器上的 python 脚本,并且有一个用于执行该脚本的 api。下面给出了执行此脚本的 api 和方法

import requests
url = "https://base-adress/api/id/run?param1={param1}&param2={param2}"
response = requests.get(url, headers=headers)

现在我想解析托管在云服务器上的 python 脚本内的 get 请求中传递的这些参数。我该怎么做?

python python-requests get
1个回答
0
投票

要解析云服务器上托管的 Python 脚本内的 GET 请求中传递的参数,您可以使用 Flask 或 Django 等 Web 框架,这使得处理传入请求及其参数变得更加容易。这是使用 Flask 的示例:

  1. 通过运行以下命令安装 Flask(如果尚未安装):
    pip install Flask
  2. 创建 Flask 应用并处理 GET 请求参数:
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/api/id/run', methods=['GET'])
def execute_script():
    # Get query parameters from the request
    param1 = request.args.get('param1')
    param2 = request.args.get('param2')
    
    # Here, you can execute your script using the received parameters
    # Replace this with your actual script logic
    result = f"Executing script with param1: {param1} and param2: {param2}"
    
    return jsonify({"result": result})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)  # Run the app on your cloud server's IP and port

  1. 在您的云服务器上运行 Flask 应用程序。这将侦听指定 IP 和端口上的传入请求(例如,http://your_server_ip:5000)。
  2. 您在脚本中修改后的 API 调用可以保持不变:
import requests

base_url = "http://your_server_ip:5000"  # Update this with your server's IP and port
url = f"{base_url}/api/id/run"
params = {"param1": "value1", "param2": "value2"}
response = requests.get(url, params=params)

print(response.json())

请记住将

"value1"
"value2"
替换为您想要作为参数传递的实际值。当您进行API调用时,Flask应用程序将接收参数,执行脚本逻辑并返回结果。

如果您选择使用其他端口,请确保云服务器的防火墙和网络配置允许指定端口(在本例中为端口 5000)上的传入连接。

© www.soinside.com 2019 - 2024. All rights reserved.