如何使用Python请求将数据从本地主机发送到服务器?

时间:2020-06-10 09:52:02

标签: python django localhost remote-server

我正在尝试使用Python请求和Django通过API将数据从本地主机发送到远程服务器中的API:/api/send-data/

urls.py中/api/send-data/的路径为path('send-data/',view_send_data.send_data,name='send_data')

这是我在本地主机上的view_send_data.py

@api_view(('POST',))
@renderer_classes((TemplateHTMLRenderer, JSONRenderer))
def send_data():


        # defining the API-endpoint  
        API_ENDPOINT = "http://68.183.89.234/api/screen/"

        # data to be sent to API
        data = {'data':1234} 

        # sending post request and saving response as response object 
        r = requests.post(url = API_ENDPOINT, data = data) 
        print(r.json())

        return Response({"success": True}, status=status.HTTP_200_OK)

urls.py中位于http://68.183.89.234/api/screen/的api的路径为path('screen/',views_fr.screen_display,name='screen')

这是我的远程服务器中的views_fr.py

@api_view(['POST'])
def screen_display(request):
    if request.method == 'POST':

         return Response({"success": True,
                                     "response": request.data}, status=status.HTTP_200_OK)

在浏览器中调用"http://127.0.0.1:8000/api/send-data/"时,我会收到405 Method Not Allowed

这是正确的方法还是我错过了什么?谢谢。

1 个答案:

答案 0 :(得分:0)

您收到的错误是因为远程服务器API仅接受POST方法,但是您无法使用浏览器url调用发出POST请求。使用邮差或curl测试API,以便您可以设置正确的请求方法。