Example – Using Deferreds

And of course, this is Twisted. So there is a wealth of APIs that return a Deferred. A Deferred may also be returned from handler functions and their result will be used as the response body.

Here is a simple Google proxy, using treq (think Requests, but using Twisted):

import treq
from klein import Klein
app = Klein()

@app.route('/', branch=True)
def google(request):
    d = treq.get(b'https://www.google.com' + request.uri)
    d.addCallback(treq.content)
    return d

app.run("localhost", 8080)