我有两个应用程序,一个为 flask应用程序( app.py )作为我的界面,另一个应用程序与USB条形码扫描仪集成并向其发送发布请求(称为Flask路线),请调用此 scanner应用( scanner.py )。
我想发生的事情是,当扫描仪成功扫描条形码时,据推测它应该已经将带有有效载荷的后要求发送到了路由,并且烧瓶应用程序应该已经收到了有效载荷。
但是我认为这是不正确的,因为扫描后什么也没发生。
scanner.py
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.py
# 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
我想发生的事情是,当它扫描条形码并发送发布请求时,应该已经收到有效载荷并将其显示在仪表板上,但是即时消息却什么也没收到。
是否有解决方法?还是更好的实施方案?
答案 0 :(得分:0)
我认为您应该使用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