Блокировка ввода при повторной отправке запроса на получение от raspberry pi в колбу - PullRequest
0 голосов
/ 16 апреля 2019

Я отправляю запрос get из кода Python в raspberry pi в мое приложение колбы, чтобы в ответ я мог получить два параметра от пользователя - PIN и STATUS.

Я отправляю текущее состояниеконтакты каждые 10 секунд от raspberry pi с функцией pin_state().

Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь отправить ввод обратно в raspberry pi, он продолжает запрашивать ввод столько раз, сколько и число.из запросов на получение, которые я отправил с помощью raspberry pi.

Так что, если я отправил 3 приложения от raspberry pi в приложение, сервер продолжит запрашивать ввод PIN-кода и ввода состояния три раза, а затем отправлять результаты обратно.

Вот код, который я использую в приложении Raspberry Pi и колба.

##Raspberry pi code
    payload=(('mess',pin_state()),("count",count))
    URL=('http://92c648b9.ngrok.io/post1')
    r=requests.get(url=URL,params=payload,timeout=10)
    print r.content
    a=json.loads(r.content)
    pin= int(a["pin"])
    status= int(a["status"])
## flask app code (windows10, visual studio 2017)
@app.route('/post1', methods=['GET','POST'])
def post1():
    message= request.args.get('mess') 
    count = request.args.get('count') 
    print ("Number of times a get request is recieved: %s"%count)
    b=json.loads(message)
    print (b["sensor"])
    print (b["mess1"])
    print (b["mess2"])
    print (b["mess3"])
    print (b["mess4"])
    print (b["mess5"])
    print (b["mess6"])
    print (b["mess7"])
    print (b["mess8"])
    pin = input("PIN: ")
    status=input("Status: ")
    my_dict={"pin":pin, "status": status}
    return json.dumps(my_dict)

1 Ответ

0 голосов
/ 17 апреля 2019

Сначала в вашем коде есть опечатка.

statusi=input("Status: ")

Это статус или статуси

Во-вторых, вы можете попробовать использовать сессию

Вам нужно будет сохранить пин-код и статус в сеансе

Сначала вам нужно будет импортировать сессию из колбы. Добавьте это на самой верхней странице

from flask import Flask, session

Теперь вы можете устанавливать сеансы для пин-кода и статуса или чего-либо еще

pin = input("PIN: ")
status=input("Status: ")

session['pin'] = pin
session['status'] = status

my_dict={"pin": session['pin'], "status": session['status']}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...