Как принять POST запрос на сервере с помощью python?
Всем добрый день!
На стороне есть программа которая будет отправлять POST запрос с содержимым json на сервер.
json с одним полем: "a: abvgrd".
Как с помощью python мне принять этот запрос на сервере, прочитать (этот json будет отправляться дальше)?
А если у меня параллельно открыт сокет с приложением (канал открыт постоянно), и то что я получаю через POST, необходимо отправлять, по этому сокету, приложению
Есть вот такая вещь которая читает POST
@app.route('/api/add_message/', methods=['GET', 'POST'])
def add_message(uuid):
content = request.json
print content['a']
return jsonify({"uuid":content['tx_body']})
app.run(host= '127.0.0.1',debug=True)
и есть вот такая функция запуска сервера сокета
s=socket.socket()
s.bind(('0.0.0.0', 8090))
s.listen(0)
while True:
client, addr = s.accept()
while True:
if sms != '0':
client.send(sms)
sms = '0'
time.sleep(3)
termitik, ну как бы да... Могу конечно предложить не самый идеологически правильный, но очень простой способ. Ставите RabbitMQ, делаете два отдельных скрипта: первый держит сокет и слушает канал в кролике, второй просто принимает POST и скидывает в канал.
Такой вариант будет максимально асинхронный и можно легко наращивать мощность просто запуская доп скрипты
Fixid, Понял спасибо. Запустил параллельно. Только приложение по сокету не подключается, но при этом post запросы читаются. Открыты на разных портах сокет и чтение
Вам надо реализовать несколько потоков, в одном держите сокет, во втором принимаете POST. Почитайте по особенности web сервера, точнее то что он уже ассинхронный. Так что достаточно поднять сокет при старте скрипта и потом поднять web сервер