将额外参数传递给Sanic的帖子

2024-05-15 19:57:14 发布

您现在位置:Python中文网/ 问答频道 /正文

情况是,我有人的密码离开了我的办公室。他使用了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从代码中检索新的_编号。有人能帮我吗?我对服务器端编程非常陌生,尤其是Sanic。如果需要,我很乐意提供额外的代码


Tags: to数据代码sendurlnumberdataserver
1条回答
网友
1楼 · 发布于 2024-05-15 19:57:14

发送到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"))

相关问题 更多 >