Dynamic Content¶
You may use Handlers to serve any type of dynamic content, but only a Python handler is provided by default.
Here’s an example index.py that displays the client’s IP and the current date.
from datetime.datetime import now
def render(server, request):
return 'Your IP: ' + server.peer[0] + '\nCurrent date: ' + str(now())
Server object:
Attribute | Description |
---|---|
peer | Client info, e.g. [‘127.0.0.1’, 25565] |
Request object:
Attribute | Description |
---|---|
protocol | Protocol version, e.g. “HTTP/1.1” |
scheme | HTTP scheme, e.g. “https” |
method | HTTP method, e.g. “POST” |
headers | Request headers, e.g. {‘User-Agent’: ‘Client/1.0’} (case-insensitive) |
host | Request hostname, e.g. “mysite.com” |
path | Request path, e.g. “/file.txt” |
uri | Full request path, e.g. “/file.txt?query=string” |
query_string | Query string, e.g. “query=string” |
query | Parsed query string, e.g. {‘query’: [‘string’]} |
body | Request body (ASCII) |
post | Parsed request body, e.g. {‘post’: [‘param’]} |
site | Site config, e.g. {‘uris’: [‘mysite.com’, ‘www.mysite.com’], …} |
root | Document root as given in config |
file | Absolute path of requested file (document root + request path) |