Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python respond to HTTP Request

I am trying to do something that I assume is very simple, but since I am fairly new to Python I haven't been able to find out how. I need to execute a function in my Python script when a URL is called.

For example, I would visit the following URL in my browser (192.168.0.10 being the IP of the computer I am running the script on, and 8080 being the port of choice).

http://192.168.0.10:8080/captureImage

When this URL is visited, I would like to perform an action in my Python script, in this case execute a function I made.

I know this might be fairly simple, but I haven't been able to find out how this can be done. I would appreciate any help!

like image 816
Lazze Avatar asked Oct 17 '13 18:10

Lazze


People also ask

How do I read response 200 in Python?

A status code informs you of the status of the request. For example, a 200 OK status means that your request was successful, whereas a 404 NOT FOUND status means that the resource you were looking for was not found.

How do I connect to HTTP in Python?

For this, you need to import the “HTTP. client” module of python first at the start of your python code. After this, the HTTP. client module is used to call the “HTTPConnection()” function to make a connection with a specified URL.

Which Python library would you use to serve HTTP requests?

requests - Easily the most popular package for making requests using Python. urllib3 - Not to be confused with urllib , which is part of the Python standard library.


1 Answers

This is indeed very simple to do in 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()

Depending on where you want to go from here, you might want to checkout the documentation for BaseHttpServer, or look into a more full featured web framework like Django.

like image 87
Nathan Jhaveri Avatar answered Oct 22 '22 20:10

Nathan Jhaveri