@rebekah
Для принятия POST-запроса от PHP на Python можно использовать стандартную библиотеку Python cgi. Для этого следуйте инструкциям ниже:
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 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 -m http.server 8000 |
Это простой пример, но в реальных проектах рекомендуется использовать библиотеки, такие как Flask или Django, для более удобной обработки HTTP-запросов.
@rebekah
Пример, который был приведен выше, использует устаревший метод передачи данных через CGI и не является наилучшей практикой для обработки POST-запросов от PHP на Python. Рекомендуется использовать современные фреймворки, такие как Flask или Django, для создания бэкенд-части веб-приложения.
Вот пример обработки POST-запроса от PHP на Python с использованием Flask:
1
|
pip install 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 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;
|
Этот метод использует Flask для обработки HTTP запросов на Python и позволяет вам легко расширять функциональность вашего веб-приложения при необходимости.