Ответ Python на HTTP-запрос

Я пытаюсь сделать что-то, что я предполагаю, очень просто, но поскольку я довольно новичок в Python, я не смог узнать, как это сделать. Мне нужно выполнить функцию в моем скрипте Python при вызове URL.

Например, я бы посетил следующий URL-адрес в моем браузере (192.168.0.10 – это IP-адрес компьютера, на котором запущен скрипт, а 8080 – порт выбора).

http://192.168.0.10:8080/captureImage 

Когда этот URL-адрес посещен, я хотел бы выполнить действие в моем скрипте Python, в этом случае выполните функцию, которую я сделал.

Я знаю, что это может быть довольно просто, но я не смог узнать, как это можно сделать. Буду признателен за любую помощь!

  • Numpy: среднее значение по одному измерению в «зубчатой» 3D-массиве
  • Firebase с использованием числа с плавающей запятой в качестве ключа
  • Почему моя Spark работает медленнее, чем чистый Python? Сравнение производительности
  • Использование макетного патча для издевательства метода экземпляра
  • Python dump dict для json-файла
  • Получение <генераторного объекта <genexpr>
  • Сегментация изображения на основе карты крайних пикселей
  • Matplotlib: `pcolormesh.get_array ()` возвращает сплющенный массив - как вернуть данные 2D?
  • 2 Solutions collect form web for “Ответ Python на HTTP-запрос”

    Это действительно очень просто сделать в python:

     import SocketServer from BaseHTTPServer import BaseHTTPRequestHandler def some_function(): print "some_function got called" class MyHandler(BaseHTTPRequestHandler): def do_GET(self): if self.path == '/captureImage': # Insert your code here some_function() self.send_response(200) httpd = SocketServer.TCPServer(("", 8080), MyHandler) httpd.serve_forever() 

    В зависимости от того, куда вы хотите перейти отсюда, вы можете проверить документацию для BaseHttpServer или посмотреть более полнофункциональную веб-инфраструктуру, такую ​​как Django.

    Один надежный способ выполнить то, что вам нужно, – использовать веб-фреймворк Python, Flask ( http://flask.pocoo.org/ ). Есть видео Youtube, которые хорошо объясняют основы Flask ( https://www.youtube.com/watch?v=ZVGwqnjOKjk ).

    Вот пример из моего детектора движения, который сообщает мне, когда моя кошка ждет у двери. Все, что нужно сделать для запуска этого кода, – это HTTP-запрос по адресу (в моем случае). http://192.168.1.112:5000/cat_detected

      from flask import Flask import smtplib import time def email(from_address, to_address, email_subject, email_message): server = smtplib.SMTP('smtp.gmail.com:587') server.ehlo() server.starttls() server.login(username, password) # For character type new-lines, change the header to read: "Content-Type: text/plain". Use the double \r\n. # For HTML style tags for your new-lines, change the header to read: "Content-Type: text/html". Use line-breaks <br>. headers = "\r\n".join(["from: " + from_address, "subject: " + email_subject, "to: " + to_address, "mime-version: 1.0", "content-type: text/plain"]) message = headers + '\r\n' + email_message server.sendmail(from_address, to_address, message) server.quit() return time.strftime('%Y-%m-%d, %H:%M:%S') app = Flask(__name__) @app.route('/cat_detected', methods=['GET']) def cat_detected(): fromaddr = 'CAT ALERT' admin_addrs_list = [['YourPhoneNumber@tmomail.net', 'Mark']] # Use your carrier's format for sending text messages via email. for y in admin_addrs_list: email(fromaddr, y[0], 'CAT ALERT', 'Carbon life-form standing by the door.') print('Email on its way!', time.strftime('%Y-%m-%d, %H:%M:%S')) return 'Email Sent!' if __name__ == '__main__': username = 'yourGmailUserName@gmail.com' password = 'yourGmailPassword' app.run(host='0.0.0.0', threaded=True) 
    Python - лучший язык программирования в мире.