Проблема с вашим кодом заключается в том, что вы отправляете данные с OpenCV webcam
на local server
, а с local server
вы возвращаете ответ на openCV webcam
, и поэтому вы видите данные в терминале, когда вы их печатаете, и вы вы не можете видеть данные на веб-странице приложения flask, поскольку у вас нет этих данных, потому что вы потеряли данные в тот момент, когда вы вернули ответ на openCV webcam
.
В этом случае Вы можете использовать 1 из 3 подходов.
Используя базу данных, например sqlite3
, и сохранять полученные данные из openCV webcam
, но тогда вам нужно будет сделать больше, например, создавать модели и т. д. c.
Сохранить данные, полученные из OpenCV webcam
, в файл - более быстрый вариант, чтобы проверить, что все работает (тот, который я буду использовать в моем примере кода)
Использование flask.session
и сохранение данных в сеансе flask, а затем чтение из него, как если бы вы читали данные из словаря python.
В этих случаях при открытии веб-приложения flask в браузере необходимо прочитать данные из DB
, file
или flask.session
.
В этом примере я буду использовать файл с именем data.txt
, в который буду писать (я буду использовать a
, что означает открытый файл для добавления к конец файла, тогда старые данные останутся, когда вы отправите несколько запросов от OpenCV webcam
) информации, полученной с сервера OpenCV webcam
.
from flask import Flask, request, render_template, jsonify
# creating the flask app
app = Flask(__name__)
@app.route("/getData", methods=['POST', 'GET'])
def getInfo():
if request.method == 'POST':
text_input = request.form["data"]
with open('data.txt', 'a') as data_file:
data_file.write(text_input)
return jsonify({'message': 'Data saved sucessfully!'}), 200
else:
text_input = None
with open('data.txt', 'r') as data_file:
text_input = data_file.read()
return render_template("text.html", text=text_input)
if __name__ == '__main__':
app.run(debug=True)
Таким образом, ваш OpenCV webcam
будет получать 200
ответ с сообщением. Затем вы можете перейти на страницу /getData
своего веб-приложения, тогда метод запроса будет GET
, а затем он прочитает содержимое файла data.txt
и передаст его на страницу, которую вы только что открыли.
Убедитесь, что вы можете получить доступ к data.txt
, он должен быть расположен в том же каталоге, в котором находится ваше приложение (по крайней мере, в этом примере, но вы должны создать более подходящую структуру позже или вообще использовать sqlite3
база данных для локального развития).