Отправка данных с клиентов на сервер - PullRequest
0 голосов
/ 30 января 2019

Я должен завершить проект по программированию в колледже, и я выбрал проект, который потребует нескольких клиентов (Raspberry Pis) для взаимодействия с центральным сервером.

По сути, сервер будет хранить базу данныхлюди каждый с уникальным вектором.Затем Raspberry Pi отправит вектор на сервер, а затем сервер определит, к какому вектору он ближе всего из тех, которые он сохранил в этой базе данных, и затем соответствующим образом обновит базу данных о состоянии.

Веб-приложение будет отображать текущее состояние определенных переменных в базе данных состояния, и люди должны иметь возможность войти в веб-приложение (но сейчас этого не требуется, предоставляя доступ к нему любому в локальной сети длясейчас все в порядке).

Я просто не совсем уверен, как это настроить.Я уже сделал веб-приложение во флеше, и на данный момент оно работает локально, но я думаю, что могу сделать его доступным для всей сети, изменив хост на 0.0.0.0.

Я также написал кодпринять несколько векторов в качестве входных данных, а затем проверить их все и соответственно обновить базу данных.Тем не менее, я еще не уверен, как отправить векторы с Pi на сервер.

Поскольку в данный момент он все еще находится в стадии разработки, мой компьютер будет сервером, и я буду использоватьодин Rasperry Pi 3B в качестве клиента.

Я подумал, что мне может понадобиться отправить запрос POST от Pi на сервер, и я могу это сделать, поскольку у меня есть опыт работы с запросами Python, хотя я и не знал быкак настроить его так, чтобы он отправлялся на сервер, а затем чтобы сервер прочитал его и выполнил код для анализа вектора (ов).

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

Спасибо.

РЕДАКТИРОВАТЬ: Похоже, мне, вероятно, нужен API на моем сервере, а затем я отправляю запрос POSTна http://MY_PC_IP/{api} и затем каким-то образом перенести эти данные в Python, чтобы я мог запустить свой код с ним?

1 Ответ

0 голосов
/ 30 января 2019

вы можете создать маршрут в вашем приложении для колб, который будет принимать вектор, отправленный из малины, и затем обрабатывать эти данные соответствующим образом.Отправляемые данные могут быть в формате JSON.

Также, да, запустите ваше приложение с 'host = 0.0.0.0'.Теперь с другого компьютера (например, raspberry) вы можете подключиться к серверу, используя ip-адрес вашего сервера.

Следующий пример должен работать.

from flask import request,jsonify

@app.route('/post_vector',methods=['POST'])
def post_vector():
    if not request.is_json:
        return jsonify({"Message":"Missing JSON in request"})
    vector = request.json.get("vector", None)
    #now do something with vector. like DB comparison or whatever.
    return jsonify({"Message": vector})

затем с вашего raspberryВы можете создать скрипт, который отправит его вектор в ваше приложение фляги.

import requests
import json

uri = <ip-address-of-server> + '/post_vector'
data = {
  "vector" : "somevector"
}
data = json.dumps(data)
response = requests.post(uri, data=data)
reply = json.loads(response.text)
print(reply)
...