# # This is a picoweb example showing a centralized web page route # specification (classical Django style). # import ure as re import picoweb def index(req, resp): # You can construct an HTTP response completely yourself, having # a full control of headers sent... yield from resp.awrite("HTTP/1.0 200 OK\r\n") yield from resp.awrite("Content-Type: text/html\r\n") yield from resp.awrite("\r\n") yield from resp.awrite("I can show you a table of squares.
") yield from resp.awrite("Or my source.
") yield from resp.awrite("Or enter /iam/Mickey Mouse after the URL for regexp match.") def squares(req, resp): # Or can use a convenience function start_response() (see its source for # extra params it takes). yield from picoweb.start_response(resp) yield from app.render_template(resp, "squares.tpl", (req,)) def hello(req, resp): yield from picoweb.start_response(resp) # Here's how you extract matched groups from a regex URI match yield from resp.awrite("Hello " + req.url_match.group(1)) ROUTES = [ # You can specify exact URI string matches... ("/", index), ("/squares", squares), ("/file", lambda req, resp: (yield from app.sendfile(resp, "example_webapp.py"))), # ... or match using a regex, the match result available as req.url_match # for match group extraction in your view. (re.compile("^/iam/(.+)"), hello), ] import logging logging.basicConfig(level=logging.INFO) #logging.basicConfig(level=logging.DEBUG) app = picoweb.WebApp(__name__, ROUTES) # debug values: # -1 disable all logging # 0 (False) normal logging: requests and errors # 1 (True) debug logging # 2 extra debug logging app.run(debug=1, host='0.0.0.0', port=80)