Как сделать так, чтобы ответ сервера стал конечным результатом моей программы в Python? - PullRequest
0 голосов
/ 12 февраля 2020

Мне удалось настроить python http.server и заставить работать do_POST (), но я не знаю, как вызвать функцию моей программы внутри сервера, поэтому она вызывает ее при поступлении запроса.

from http.server import HTTPServer, BaseHTTPRequestHandler
from io import BytesIO

PORT = 8080


class RequestHandler(BaseHTTPRequestHandler):
    def _send_cors_headers(self):
        self.send_header("Access-Control-Allow-Origin", "*")
        self.send_header("Access-Control-Allow-Methods", "GET,POST,OPTIONS")
        self.send_header("Access-Control-Allow-Headers",
                         "x-api-key,Content-Type")

    def do_OPTIONS(self):
        self.send_response(200)
        self._send_cors_headers()
        self.end_headers()

    def do_POST(self):
        content_length = int(self.headers['Content-Length'])
        body = self.rfile.read(content_length)
        self.send_response(200)
        self._send_cors_headers()
        self.send_header("Content-Type", "application/json")
        self.end_headers()
        response = BytesIO()
        response.write(b'This is POST request. {test}')
        response.write(b'Received: ')
        response.write(body)
        self.wfile.write() #I tried inputting the function in here, but it says it can only accept byte-like objects

print("Starting server")
httpd = HTTPServer(('localhost', PORT), RequestHandler)
httpd.serve_forever()

Я создал простое приложение реакции, которое принимает параметр и должно возвращать конечный результат моей программы python. Параметр это fibIndex, который возвращает число Фибоначчи по указанному индексу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...