将额外的参数传递给 Sanic 的 post

Passing extra argument to Sanic's post

情况是我得到了离开我办公室的人的密码。他用过Sanic框架。现在,客户要求进行一些更改。我必须向服务器发送额外的数据,这些数据将存储在数据库中,稍后可以检索。

代码:

之前的代码是:

def send_update_to_server(v_Number, state, server_url):
  data = {'state': state}
  address_to_send = "http://{}/vote/{}".format(server_url, v_Number)
  r = requests.post(address_to_send, json=data)

所以,为了发送额外的数据,我添加了我要发送的变量:

def send_update_to_server(v_Number, state, server_url, new_number):
  data = {'state': state}
  address_to_send = "http://{}/vote/{}".format(server_url, v_Number)
  r = requests.post(address_to_send, new_number, json=data)

Sanic这边的post方法是:

async def post(self, request, *args, **kwargs):
  //some_code

现在,我无法检索使用 requests.post 从我的代码发送的 new_number。任何人都可以帮助我吗?我对服务器端编程很陌生,尤其是 Sanic。如果需要,我很乐意提供额外的代码。

发送到 Sanic 端点​​的所有 json 数据都可用 request.json,请参阅 docs

那么,看来您只需要执行以下操作即可:

def send_update_to_server(v_Number, state, server_url, new_number):
  data = {'state': state, 'new_number': new_number}
  address_to_send = "http://{}/vote/{}".format(server_url, v_Number)
  r = requests.post(address_to_send, json=data)

然后,您可以在处理程序中读取它:

from sanic.response import text
async def post(self, request, *args, **kwargs):
    return text(request.json.get("new_number"))