Module

tornado.web
Das Modul enthält die Klassen RequestHandler und Application.
Einen Request Handler definiert man als Klassen-Objekt und leitet es von der Klasse tornado.web.RequestHandler ab.
Der Klasse tornado.web.Application übergibt man dann eine Liste mit Request Handler um die Applikation zu definieren.

import tornado.web

class MainHandler(tornado.web.RequestHandler):
    self.write('response main handler')

application = tornado.web.Application([r"/", MainHandler])
...

tornado.httpserver
Mit diesem Modul ist es möglich einen Request Handler als Funktion zu definieren.

import httpserver
import ioloop

def handle_request(request):
   message = "You requested %s\n" % request.uri
   request.write("HTTP/1.1 200 OK\r\nContent-Length: %d\r\n\r\n%s" % (len(message), message))
   request.finish()

http_server = httpserver.HTTPServer(handle_request)
http_server.listen(8888)
ioloop.IOLoop.instance().start()

tornado.httpclient
Mit dem Modul ist es möglich HTTP Request zu versenden.

http_client = httpclient.HTTPClient()
try:
    response = http_client.fetch("http://www.google.com/")
    print response.body
except httpclient.HTTPError, e:
    print "Error:", e

tornado.template
Ein einfaches Template System was HTML mit Python kombiniert.
Es ist möglich Templates zu generieren oder sie aus einem Verzeichnis zu laden.
Zusätzlich können auch Funktionen an Templates übergeben werden.

self.render('index.html')
t = template.Template("{{ myvalue }}")
print t.generate(myvalue="content")
loader = template.Loader("/home/tornado")
print loader.load("index.html").generate(myvalue="content")
<html>
    <head>
        <title>{{ title }}</title>
    </head>
    <body>
        <ul>
        {% for item in items %}
            <li>{{ escape(item) }}</li>
       {% end %}
       </ul>
    </body>
</html>
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        items = ["Item 1", "Item 2", "Item 3"]
        self.render("template.html", title="My title", items=items)

tornado.escape
Das Modul stellt Funktionen zum maskiere und manipulieren von Strings zur Verfügung.

tornado.database
Eine einfach Schnittstelle für MySQL Datenbanken, ist abhängig von python-mysqldb.

db = database.Connection("localhost", "mydatabase", "user", "pass")
for log in db.query("SELECT * FROM logs"):
    print log.name, log.timestamp
db.close()

Comments are closed.