Как принимать post запрос от php на python?

Пользователь

от rebekah , в категории: Python , год назад

Как принимать post запрос от php на python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от steve , год назад

@rebekah 

Для принятия POST-запроса от PHP на Python можно использовать стандартную библиотеку Python cgi. Для этого следуйте инструкциям ниже:

  1. Создайте PHP-скрипт, который отправляет POST-запрос на Python-скрипт. Например, можно использовать функцию file_get_contents:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$url = 'http://localhost:8000/python_script.py';
$data = array('param1' => 'value1', 'param2' => 'value2');

$options = array(
  'http' => array(
    'method' => 'POST',
    'header' => 'Content-type: application/x-www-form-urlencoded',
    'content' => http_build_query($data)
  )
);

$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);


  1. Создайте Python-скрипт, который будет принимать и обрабатывать POST-запросы от PHP. Сохраните его, например, как python_script.py:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#!/usr/bin/env python

import sys
import cgi

# Получите данные POST-запроса
form = cgi.FieldStorage()
param1 = form.getvalue('param1')
param2 = form.getvalue('param2')

# Обработайте данные и верните результат
result = 'Результат обработки запроса: {} {}'.format(param1, param2)
print('Content-Type: text/plain;charset=utf-8')
print()
print(result)


  1. Запустите локальный веб-сервер Python, который будет принимать POST-запросы на порту 8000. Для этого откройте терминал или командную строку и выполните команду:
1
python -m http.server 8000


  1. Запустите PHP-скрипт и проверьте, что результат обработки POST-запроса от Python выводится в PHP-скрипт.


Это простой пример, но в реальных проектах рекомендуется использовать библиотеки, такие как Flask или Django, для более удобной обработки HTTP-запросов.

Пользователь

от linnea , 3 месяца назад

@rebekah 

Пример, который был приведен выше, использует устаревший метод передачи данных через CGI и не является наилучшей практикой для обработки POST-запросов от PHP на Python. Рекомендуется использовать современные фреймворки, такие как Flask или Django, для создания бэкенд-части веб-приложения.


Вот пример обработки POST-запроса от PHP на Python с использованием Flask:

  1. Установите Flask с помощью pip, если у вас его еще нет:
1
pip install Flask


  1. Создайте Python-скрипт с использованием Flask:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from flask import Flask, request

app = Flask(__name)

@app.route('/process_post', methods=['POST'])
def process_post():
    param1 = request.form['param1']
    param2 = request.form['param2']

    result = f'Результат обработки запроса: {param1}, {param2}'
    
    return result

if __name__ == '__main__':
    app.run(host='localhost', port=8000)


  1. Создайте PHP-скрипт для отправки POST-запроса на Python-скрипт:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
$url = 'http://localhost:8000/process_post';
$data = array('param1' => 'value1', 'param2' => 'value2');

$options = array(
    'http' => array(
        'method' => 'POST',
        'header' => 'Content-type: application/x-www-form-urlencoded',
        'content' => http_build_query($data)
    )
);

$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);

echo $result;


  1. Запустите Python-скрипт с Flask и PHP-скрипт, отправляющий POST-запрос. Проверьте, что данные успешно отправляются и обрабатываются.


Этот метод использует Flask для обработки HTTP запросов на Python и позволяет вам легко расширять функциональность вашего веб-приложения при необходимости.