如何使用请求库将Payload从另一个Python App发送到Flask应用程序[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用请求库将Payload从另一个Python App发送到Flask应用程序[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我有两个应用程序,一个烧瓶应用程序(app.py)作为我的界面,另一个应用程序集成了一个usb条形码扫描仪,并发送一个帖子请求到Flask路线,让我们调用这个扫描仪应用程序(scanner.py)。

我想要发生的事情是,当扫描仪成功扫描条形码时,据说它应该已经发送了一个带有有效载荷的路径请求,并且有效载荷应该由烧瓶应用程序接收。

但我认为这是不正确的,因为扫描后没有任何反应。

scanner.朋友

def UPC_lookup(api_key,upc):
    '''V3 API'''

    try:

        item, value = search_request(upc)
        print str(item) + ' - ' + str(value)
        payload = {}
        payload['item'] = str(item)
        payload['price'] = str(value)
        payload_data = json.dumps(payload)
        requests.post('http://localhost:5000/', data=payload_data)

    except Exception as e:
        pass
if __name__ == '__main__':
    try:
        while True:
            UPC_lookup(api_key,barcode_reader())
    except KeyboardInterrupt:
        pass

app.朋友

# Index route
@app.route("/", methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        item = request.args.get('item')
        price = request.args.get('price')
        print(str(item))
        print(str(price))
        return render_template('dashboard.html', item=item, value=price)
    return render_template('dashboard.html') #ICO Details

我想要发生的是,当它扫描条形码并发送一个帖子请求时,应该已经收到了有效载荷并显示在仪表板上,但我什么也没收到。

这有解决方法吗?或者更好的实施?

答案

我认为你应该使用request.form而不是request.args。

@app.route("/", methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        item = request.form.get('item') # <-- Here!
        price = request.form.get('price')
        print(str(item))
        print(str(price))
        return render_template('dashboard.html', item=item, value=price)
    return render_template('dashboard.html') #ICO Details

以上是关于如何使用请求库将Payload从另一个Python App发送到Flask应用程序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 请求中使用 cookie

从另一个动作分派一个动作

如何使用 python 请求通过另一个代理重试连接?

python爬虫获取浏览器payload?

如何使用 Postman 中的预请求脚本从另一个请求运行一个请求

如何使用 async/await 从另一个函数访问请求的正文?