Ich verwende die Flask -Route, um eine Benutzerinformationen zu erhalten.def ask_input(prompt, result_queue):
try:
result = input(prompt)
result_queue.put(result)
except Exception as e:
result_queue.put(None) # Error EOFError('EOF when reading a line')
class FakeInterface:
def __init__(self):
self.app = Flask(__name__)
@self.app.route('/ihm_notification', methods=["POST"])
def __ihm_notification():
try:
prompt = "ok: y/n?"
timeout = 10
q = queue.Queue()
t = threading.Thread(target=ask_input, args=(prompt, q))
t.daemon = True
t.start()
try:
return q.get(timeout=timeout) # attend max secondes
except queue.Empty:
return None
except TimeoutOccurred:
print(f"User answer too long")
except Exception as error:
print("error")
def run(self, host: str, port: int):
self.app.run(host=host, port=port)
fi = FakeInterface()
fi.run()
< /code>
Ich erhalte den folgenden Fehler:
eoFError ('eof beim Lesen einer Zeile') < /p>
Bearbeiten:
Ich versuche auch mit WebSocket: < /p>
zu [email protected]('message')
def message(data):
try:
from inputimeout import inputimeout, TimeoutOccurred
reponse = input_with_timeout(prompt="ezzer", timeout=5)
emit('response', {'from': reponse})
except Exception:
emit('response', {'from': 'nono'})
if __name__ == '__main__':
socketio.run(app, port=8000, debug=True, allow_unsafe_werkzeug =True)
time.sleep(15)
< /code>
Wenn ich es mit einem Client versuche, funktioniert der Server, wenn ich die Eingabe vor der Zeitüberschreitung festlegt, ordnungsgemäß. Aber wenn ich vergesse, die Eingabe festzulegen, sind die nächsten Antworten immer "nono", wie die Eingabefunktion an einem Ort steckt
Eingabe in Flask Route ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post
Mobile version