【问题标题】:Python 3 Flask - how to send data to server? [duplicate]Python 3 Flask - 如何将数据发送到服务器? [复制]
【发布时间】:2016-11-15 13:09:23
【问题描述】:

这里是客户:

data = b'48958695427097097402529251103137444756'
r = requests.post("http://127.0.0.1:5000", data=data)

这里是服务器:

#! /usr/bin/env python3
# -*- coding: utf-8 -*-

from flask import Flask, Response, request

app = Flask(__name__)

@app.route('/', methods=['POST', 'GET'])
def get_data():
    print('Recieved from client: {}'.format(request.data))
    return Response('We recieved something…')

if __name__ == ‘__main__’:
    app.run(debug=True)

客户端发送到服务器字节字符串,但服务器只接收:b'' 为什么?

以及如何让服务器接收整个字节串? 谢谢。

【问题讨论】:

    标签: python flask server client


    【解决方案1】:

    您的@app.route 不包含任何method,因此您需要添加

    @app.route('/',methods=['POST'])

    要了解@app.route 的工作原理,请参阅this

    你的编辑代码

    from flask import Flask, Response, request
    
    app = Flask(__name__)
    
    @app.route('/', methods=['POST'])
    def get_data():
        print('Recieved from client: {}'.format(request.data))
        return Response('We recieved something…')
    
    if __name__ == '__main__':
        app.run(debug=True)
    

    【讨论】:

    • 有方法,不明白为什么贴在这里就消失了,现在我在我的帖子里编辑了它,它是正确的,但是代码无论如何都不起作用。
    • 请记住点击“标记为答案”解决您的问题的回复。这可能对阅读此主题的其他社区成员有所帮助。
    【解决方案2】:

    您缺少以下行尾:

    @app.route('/', methods=['POST'])
    

    在这个小修复之后,您的代码应该可以工作了。

    【讨论】:

    • 有方法,不明白为什么贴在这里就消失了,现在我在我的帖子里编辑了它,它是正确的,但是代码无论如何都不起作用。
    • 如果您尝试发送常规字符串?有用吗?
    猜你喜欢
    • 2020-06-27
    • 1970-01-01
    • 2017-01-21
    • 2018-02-05
    • 1970-01-01
    • 2020-11-21
    • 2019-09-10
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多