@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 и позволяет вам легко расширять функциональность вашего веб-приложения при необходимости.