Python для интерфейсного взаимодействия

#php #jquery #python-3.x #ajax

#php #jquery #python-3.x #ajax

Вопрос:

У меня есть веб-приложение, которое использует jQuery (через ajax) для PHP, а оттуда — для базы данных MySQL. Мне нужно выполнить некоторые ML, используя Python и чтение из базы данных. Моя проблема в том, что я не могу понять, как обмениваться данными с PHP на Python и обратно на PHP?

Для большего контекста это будет система рекомендаций по продуктам питания, поэтому на веб-сайте, если пользователь хочет получить рекомендации, он может выбрать фильтры (например, ценовой диапазон). На данный момент это отправит запрос на PHP, и я пытаюсь передать данные в Python, запустить рекомендатель и вернуться к PHP с возвращенными данными. Или есть лучший способ сделать это? Например, сразу же переключиться с jquery на Python. (У меня есть Python, который запускает рекомендатель сам по себе, взаимодействуя с базой данных, ему просто нужны фильтры, которые есть в jquery)

Ответ №1:

Вы могли бы использовать что-то вроде WebSockets для связи с вашим интерфейсом с серверной частью Python. WebSockets — это в основном повышенные HTTP-сеансы, которые допускают двунаправленную передачу.

В документах Mozilla содержится отличная информация об API WebSocket, встроенном в современные браузеры. Здесь

Это было бы, если бы вы хотели напрямую общаться с интерфейсным интерфейсом на python. Если вы хотите сделать это из серверной части (php), вы можете установить сокет-соединение из php с вашей программой на python. (TCP). Но это может быть немного излишним.

Комментарии:

1. Большое спасибо, я посмотрю и посмотрю, смогу ли я сделать это в моем случае. Никогда раньше не делал веб-сокетов, попробую, а затем приму ваш ответ

Ответ №2:

Возможно, в качестве более простой альтернативы вы могли бы создать небольшое веб-приложение Flask с конечной точкой, которая может вызываться вашим PHP-приложением (с использованием HTTP-клиента).

Затем веб-приложение Flask может использовать все обычные функции Python, такие как требуемые библиотеки ML, и возвращать результат в ваше PHP-приложение.

Или вызовите службу напрямую через ajax-запрос.