Я пытаюсь использовать локально размещенную кнопку Django веб-сервера HTML, чтобы выполнить скрипт python, который находится на моем локальном компьютере, и я в тупике - PullRequest
1 голос
/ 09 апреля 2020

Итак, я довольно новичок в Django, python и javascript.

У меня есть частично функциональный Django веб-сервер, который при его разработке я размещаю локально на своей машине.

Я сделал кнопку с HTML, которую, как я понял, можно привязать к сценарию javascript. Следующим шагом для меня было заставить эту кнопку «выполнить» скрипт python, который находится на моем компьютере, особенно в каталоге / desktop. Конечно, я могу переместить скрипт, но важная часть заключается в том, что я хочу, чтобы скрипт python (назовем его django_test_script.py) открывал собственное окно на моей машине. Это просто файл, который говорит «привет» в stdout, а затем закрывается через 5 секунд, но из-за плана всего этого проекта, я хочу, чтобы это произошло. Я хочу, чтобы мой веб-сайт был открыт на моем компьютере, нажмите эту кнопку, затем откройте консоль сценария на моем рабочем столе и запустите / fini sh.

Возможная цель - контролировать светодиодную ленту, подключенную к моему малиновому пи. Мне нужны цветные кнопки на веб-сайте, которые при нажатии запускают соответствующие сценарии python, которые переключают свет на этот цвет. Мне не потребовалось бы много времени, чтобы написать сами сценарии python, которые бы меняли цвета, но мне нужно преодолеть разрыв между «кнопка запускает скрипт py» и фактически запускаемый сценарий python.

Я вижу массу вопросов, подобных этому, но все они, похоже, включают в себя выполнение сценариев python ВНУТРИ веб-сервера, например, внутренние файлы, которые делают все, а затем возвращают что-то на сервер через HttpResponse.

Мне не нужен HttpResponse. Буквально все, что я хочу сделать прямо сейчас, - это выяснить, как сделать скрипт, который хранится на компьютере, работает.

Я немного прочитал AJAX, и я предполагаю, что это связано, однако все, что я пробовал, потерпело неудачу с AJAX с точки зрения того, чтобы заставить сервер выполнить сценарий. Я искал inte rnet уже более часа и не нашел в принципе ничего полезного (насколько я могу судить), поэтому решил, что с таким же успехом могу попросить о помощи. Может кто-нибудь указать мне правильное направление с точки зрения того, что мне нужно сделать?

1 Ответ

0 голосов
/ 09 апреля 2020

Боюсь, это невозможно. Браузер не позволяет выполнять локальные сценарии, поскольку все (из соображений безопасности) находится в песочнице. Если вы хотите выполнить что-то, вы можете сделать одно из следующих действий:

  • Использовать сервер http, который выполняет сценарий, и вызвать его через AJAX
  • . Вы встраиваете его в exectron. / nodejs приложение, которое открывает больше возможностей для доступа к системе. См. этот пример

Но из вашего требования я предполагаю, что веб-сайт будет открыт на другом устройстве для дистанционного управления светодиодом Pi? Если вам нужно использовать какой-либо http-сервер, иначе вы не сможете запустить скрипт на самом пи.

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