WSGI (Web Server Gateway Interface) is a standard interface between web servers and Python web applications or frameworks. To define a WSGI handler in a Python file, you need to create a Python function that follows the WSGI specification. This function should accept two parameters, the environment (environ) and a start_response callable.
Here's a simple example of a WSGI handler:
def wsgi_handler(environ, start_response):
status = '200 OK'
headers = [('Content-type', 'text/plain')]
start_response(status, headers)
response_body = 'Hello, WSGI!'
return [response_body.encode('utf-8')]
In this example, wsgi_handler is a WSGI-compliant function that accepts the environment and start_response parameters, sets the status and headers, and returns a list containing a single byte string.
How to Return JSON from WSGI handler ?
To return JSON from a WSGI handler, you'll need to modify the response content type and convert the response body into a JSON formatted string. You can use the json module from Python's standard library to achieve this. Here's an example:
import json
def wsgi_handler(environ, start_response):
status = '200 OK'
headers = [('Content-type', 'application/json')]
start_response(status, headers)
response_data = {
'message': 'Hello, WSGI!',
'data': {
'key': 'value',
}
}
response_body = json.dumps(response_data)
return [response_body.encode('utf-8')]
In this example, the Content-type
header is set to 'application/json'
to indicate that the response is a JSON object. The response_data
dictionary is then converted to a JSON-formatted string using json.dumps()
and returned as a byte string.