Есть ли способ запустить внутренний скрипт python с веб-страницы?

#python

#python

Вопрос:

Я наконец-то создал проект, который давно хотел создать :

Я использую Arduino Uno для замены кнопки питания моего ПК (с помощью простого реле), и эта плата Arduino подключена к Raspi 3 для целей сетевого подключения

Я хочу создать веб-страницу (или запрос, подобный API), который одним нажатием кнопки (желательно на странице, защищенной паролем) Это включит компьютер

Я знаю, как писать код на Python, и мой скрипт для управления Arduino уже выполнен, но я не могу найти способ запустить, только на стороне сервера, скрипт Python с кнопки на веб-странице

Я нашел этот фреймворк CherryPy, но я не думаю, что он удовлетворит мои потребности

Может кто-нибудь дать мне какие-либо идеи по этому поводу, пожалуйста?

Комментарии:

1. «способ запуска, только на стороне сервера, скрипта Python с кнопки на веб-странице» — Flask, Django, Bottle — любой веб-сервер Python. Бутылка, вероятно, самая легкая. Или просто создайте свой собственный со встроенным http.server .

Ответ №1:

Как уже упоминалось @ForceBru, вам нужен веб-сервер python.

Если это может быть вам полезно, это возможная небезопасная реализация с использованием flask:

 from flask import Flask
from flask import request

app = Flask(__name__)

@app.route('/turnOn')
def hello_world():
    k = request.args.get('key')
    if k == "superSecretKey":
        # Do something ..
        return 'Ok'
    else:
        return 'Nope'
 

Если вы поместите это в app.py назовите файл и, после установки flask ( pip install flask ), запустите flask run вы должны быть в состоянии увидеть Ok при посещении URL-адреса http://localhost:5000/turnOn?key=superSecretKey .

Вы могли бы написать краткий html-графический интерфейс с кнопкой и ключевым полем в форме, но я оставляю это вам (вам тоже нужно повеселиться!). Чтобы избежать потенциальных проблем с безопасностью, вы можете использовать метод POST и https. Посмотрите документацию flask для получения дополнительной информации.

Комментарии:

1. Это здорово, большое вам спасибо