Как запустить функцию python из javascript? - PullRequest
0 голосов
/ 07 января 2020

У меня проблема с вызовом моей python функции из моего javascript файла.

Я использую простой сервер с python3 -m http.server, поэтому на самом деле никакого бэкэнда .. мои javascript-коды в внешний интерфейс.

У меня есть python файл с именем write.py, в нем есть функция, которую я хочу выполнить из моего javascript файла

write.py file:

def save_vit(text,name):
    f = open(name + ".xml", "w+")
    f.write(text)
    f.close()

javascript часть, которую я пробовал: (но не сработало)

$.ajax({
        type: "POST",
        url: "write.py",
        data: { text: xmlDoc,name: name}});

xmlDo c - это строка с xml document.

name - это переменная с именем файла для функции python.

Поэтому мой вопрос: что мне не хватает для вызова write.py из моего js файла или как его назвать, если этот подход неправильный?

Ответы [ 3 ]

1 голос
/ 07 января 2020

Python работает на стороне сервера ... JavaScript работает на стороне клиента .

Итак, единственный способ для JavaScript запросить выполнение подпрограммы Python - это асинхронный запрос AJAX, который вам придется создать.

1 голос
/ 08 января 2020

Вы используете http.server для обслуживания содержимого папки в виде файлов, а не для их выполнения, поэтому в лучшем случае http.server будет отвечать содержимым файла write.py вместо его выполнения .

Вам необходимо создать веб-сервер с конечной точкой, в которую интегрирован код write.py.

1 голос
/ 07 января 2020

Вы не можете отправить запрос POST http для запуска сценария python.

Вам необходимо запустить скрипт python на сервере, который может принимать успокоительные вызовы API, чтобы запустить скрипт и вернуть значение.

Например, вы можете запустить небольшое flask приложение, которое принимает ваш маршрут POST, которое запускает сценарий и возвращает значение сценария обратно клиенту, который получил доступ к маршруту POST.

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