Search.setIndex({"docnames": ["api", "async", "changelog", "cli", "configuration", "contact", "deployment", "development", "faq", "index", "plugindev", "plugins/index", "plugins/sqlite", "plugins/werkzeug", "recipes", "routing", "stpl", "tutorial", "tutorial_app"], "filenames": ["api.rst", "async.rst", "changelog.rst", "cli.rst", "configuration.rst", "contact.rst", "deployment.rst", "development.rst", "faq.rst", "index.rst", "plugindev.rst", "plugins/index.rst", "plugins/sqlite.rst", "plugins/werkzeug.rst", "recipes.rst", "routing.rst", "stpl.rst", "tutorial.rst", "tutorial_app.rst"], "titles": ["API Reference", "Primer to Asynchronous Applications", "Release Notes and Changelog", "Command Line Interface", "Configuration (DRAFT)", "Contact", "Deployment", "Developer Notes", "Frequently Asked Questions", "Bottle: Python Web Framework", "Plugin Development Guide", "List of available Plugins", "Bottle-SQLite", "Bottle-Werkzeug", "Recipes", "Request Routing", "SimpleTemplate Engine", "Tutorial", "Tutorial: Todo-List Application"], "terms": {"thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "i": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "mostli": [0, 2], "auto": [0, 2, 3, 4, 6, 14, 18], "gener": [0, 7, 9, 11, 16, 18], "If": [0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "you": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "ar": [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18], "new": [0, 1, 2, 4, 6, 7, 11, 15, 16, 17, 18], "might": [0, 1, 7, 8, 10, 17], "find": [0, 10, 15, 16, 17, 18], "narr": 0, "tutori": [0, 6, 9, 15], "more": [0, 1, 2, 4, 6, 10, 11, 14, 15, 16, 17, 18], "help": [0, 1, 2, 3, 4, 7, 8, 10, 11, 16, 17, 18], "defin": [0, 1, 2, 3, 4, 10, 14, 15, 16, 17, 18], "sever": [0, 7, 14, 17], "function": [0, 1, 2, 6, 9, 10, 11, 15, 17, 18], "constant": 0, "an": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "debug": [0, 2, 3, 4, 9, 11, 13, 18], "mode": [0, 2, 3, 14], "true": [0, 1, 3, 4, 10, 12, 14, 16, 17, 18], "sourc": [0, 4, 5, 9, 16, 17], "chang": [0, 2, 3, 6, 7, 9, 12, 14, 15, 16, 17, 18], "level": [0, 1, 17], "There": [0, 1, 2, 6, 7, 9, 14, 17, 18], "onli": [0, 1, 2, 6, 7, 8, 10, 14, 15, 16, 17, 18], "one": [0, 1, 2, 6, 7, 10, 12, 13, 14, 15, 16, 17, 18], "support": [0, 2, 4, 6, 7, 9, 12, 13, 14, 16, 17, 18], "moment": 0, "run": [0, 1, 2, 6, 7, 8, 9, 12, 14, 16, 17, 18], "app": [0, 1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 15, 17], "none": [0, 4, 10, 16, 17], "server": [0, 1, 2, 3, 9, 12, 13, 14, 17], "wsgiref": [0, 6, 17], "host": [0, 1, 6, 7, 8, 9, 14, 17, 18], "127": [0, 6, 18], "0": [0, 1, 3, 5, 6, 7, 8, 9, 10, 14, 15, 16, 17, 18], "1": [0, 6, 9, 10, 14, 17, 18], "port": [0, 1, 3, 4, 6, 9, 12, 14, 17, 18], "8080": [0, 1, 3, 6, 9, 14, 17, 18], "interv": [0, 7], "reload": [0, 3, 18], "fals": [0, 4, 13, 14, 16, 17], "quiet": 0, "plugin": [0, 2, 3, 4, 9, 12, 13], "karg": 0, "start": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 14, 15, 16, 17], "instanc": [0, 2, 6, 10, 12, 13, 15, 17], "method": [0, 2, 4, 10, 11, 14, 15, 16, 18], "block": [0, 1, 2, 16, 17], "until": [0, 1, 7, 17], "termin": [0, 1, 17], "paramet": [0, 2, 3, 4, 6, 10, 15, 17, 18], "applic": [0, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 15], "target": 0, "string": [0, 1, 2, 4, 10, 15, 16, 17, 18], "load_app": 0, "default": [0, 2, 3, 4, 6, 10, 12, 13, 15, 16, 18], "default_app": [0, 2, 4, 6, 8, 17, 18], "adapt": [0, 2, 6, 9, 18], "us": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 15, 16, 17], "see": [0, 1, 2, 3, 7, 10, 14, 16, 17, 18], "server_nam": [0, 6], "kei": [0, 2, 4, 13, 14, 17, 18], "valid": [0, 4, 6, 8, 14, 15, 17, 18], "name": [0, 2, 6, 7, 8, 9, 10, 12, 13, 15, 16, 17, 18], "pass": [0, 1, 4, 7, 10, 12, 14, 15, 16, 17, 18], "serveradapt": 0, "subclass": [0, 2, 13, 17], "address": [0, 3, 6, 8, 10, 17, 18], "bind": [0, 1, 3, 17, 18], "listen": [0, 6, 9, 14, 17, 18], "all": [0, 1, 2, 3, 4, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 18], "interfac": [0, 2, 6, 7, 10, 18], "includ": [0, 1, 2, 7, 9, 13, 15, 16, 17, 18], "extern": [0, 6, 17], "valu": [0, 2, 4, 8, 10, 12, 14, 15, 16, 17, 18], "below": [0, 6, 10, 14, 17, 18], "1024": [0, 6], "requir": [0, 1, 5, 7, 9, 12, 13, 14, 16, 17], "root": [0, 4, 6, 10, 17, 18], "privileg": 0, "second": [0, 1, 2, 10, 14, 17, 18], "suppress": 0, "output": [0, 2, 17, 18], "stdout": 0, "stderr": 0, "option": [0, 2, 3, 7, 10, 12, 13, 15, 16, 17, 18], "load": [0, 2, 3, 8, 9, 17, 18], "namespac": [0, 2, 3, 4, 10, 16, 17], "import": [0, 1, 2, 3, 4, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18], "fetch": [0, 1, 7, 14, 17], "from": [0, 1, 2, 3, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18], "packag": [0, 1, 3, 6, 7, 11, 17, 18], "return": [0, 1, 2, 4, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18], "pack": [0, 13], "mod": 0, "variabl": [0, 2, 4, 16, 18], "func": 0, "call": [0, 2, 4, 6, 7, 9, 10, 14, 15, 16, 17, 18], "result": [0, 15, 16, 17, 18], "last": [0, 7, 10, 12, 17, 18], "form": [0, 2, 8, 9, 15, 18], "accept": [0, 1, 2, 4, 7, 8, 10, 17, 18], "ani": [0, 1, 4, 6, 7, 9, 10, 12, 14, 15, 16, 17, 18], "type": [0, 1, 2, 4, 7, 10, 14, 15, 17, 18], "express": [0, 2, 3, 8, 9, 15, 17, 18], "keyword": [0, 2, 10, 12, 15, 16, 17], "argument": [0, 4, 10, 12, 15, 16, 17, 18], "avail": [0, 2, 4, 6, 7, 9, 10, 16, 17, 18], "local": [0, 6, 7, 8, 10, 12, 13, 16, 17], "exampl": [0, 1, 3, 4, 6, 8, 9, 13, 14, 15, 16, 17], "import_str": 0, "re": [0, 2, 10, 14, 15, 17], "compil": [0, 16, 17], "x": [0, 2, 7, 9, 10, 17, 18], "z": [0, 7, 10, 17], "make": [0, 1, 2, 4, 5, 6, 7, 10, 14, 16, 17, 18], "sure": [0, 2, 6, 7, 10, 14, 17, 18], "doe": [0, 1, 6, 7, 10, 12, 14, 15, 17, 18], "affect": [0, 7, 10, 12, 17], "current": [0, 1, 2, 4, 10, 15, 16, 17, 18], "separ": [0, 3, 4, 7, 10, 15, 17, 18], "localrequest": 0, "get": [0, 1, 2, 4, 5, 6, 8, 9, 10, 13, 14, 15, 16, 17, 18], "A": [0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 14, 15, 16, 17, 18], "thread": [0, 1, 4, 6, 7, 10, 13, 17, 18], "safe": [0, 7, 10, 17], "access": [0, 2, 4, 6, 9, 10, 12, 14, 16, 17, 18], "within": [0, 4, 6, 10, 14, 16, 17, 18], "callback": [0, 2, 4, 9, 10, 12, 14, 15, 17], "alwai": [0, 4, 6, 10, 16, 17, 18], "even": [0, 1, 6, 7, 14, 16, 17, 18], "multithread": 0, "text": [0, 1, 16, 17, 18], "html": [0, 1, 2, 7, 16, 18], "charset": [0, 17], "utf": [0, 17], "8": [0, 1, 7, 9, 14, 17], "localrespons": 0, "It": [0, 1, 2, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18], "http_code": 0, "httpstatu": 0, "continu": [0, 1, 10, 17], "switching_protocol": 0, "switch": [0, 1, 10, 17], "protocol": [0, 17], "process": [0, 1, 6, 10, 17, 18], "early_hint": 0, "earli": [0, 1, 6, 17], "hint": 0, "ok": [0, 2, 14, 17], "creat": [0, 1, 3, 7, 10, 16, 17, 18], "non_authoritative_inform": 0, "non": [0, 1, 2, 4, 6, 7, 10, 13, 15, 16, 17, 18], "authorit": 0, "inform": [0, 2, 7, 8, 10, 17, 18], "no_cont": 0, "No": [0, 2, 6, 15, 16, 17], "reset_cont": 0, "reset": [0, 10, 14], "partial_cont": 0, "partial": [0, 2], "multi_statu": 0, "multi": [0, 1, 2, 6, 10, 17, 18], "statu": [0, 2, 14, 17, 18], "already_report": 0, "alreadi": [0, 7, 10, 12, 14, 16, 17, 18], "report": [0, 10], "im_us": 0, "im": 0, "multiple_choic": [0, 17], "multipl": [0, 6, 17, 18], "choic": [0, 14, 17], "moved_perman": 0, "move": [0, 1, 18], "perman": 0, "found": [0, 2, 10, 12, 16, 17], "see_oth": 0, "other": [0, 2, 3, 7, 8, 9, 10, 11, 15, 16, 17, 18], "not_modifi": 0, "Not": [0, 10, 17], "modifi": [0, 9, 15, 17, 18], "use_proxi": 0, "proxi": [0, 6, 17], "temporary_redirect": 0, "temporari": [0, 7, 17], "redirect": [0, 2, 8], "permanent_redirect": 0, "bad_request": 0, "bad": [0, 10], "unauthor": [0, 14], "payment_requir": 0, "payment": 0, "forbidden": [0, 18], "not_found": 0, "method_not_allow": 0, "allow": [0, 1, 2, 4, 6, 7, 8, 9, 13, 14, 15, 16, 17, 18], "not_accept": 0, "proxy_authentication_requir": 0, "authent": [0, 11, 18], "request_timeout": 0, "timeout": 0, "conflict": [0, 7, 10], "gone": [0, 2], "length_requir": 0, "length": [0, 17], "precondition_fail": 0, "precondit": 0, "fail": [0, 17], "request_entity_too_larg": 0, "entiti": 0, "too": [0, 1, 5, 7, 8, 16, 17, 18], "larg": [0, 18], "request_uri_too_long": 0, "uri": 0, "long": [0, 1, 4, 7, 10, 16, 17, 18], "unsupported_media_typ": 0, "unsupport": [0, 17], "media": 0, "requested_range_not_satisfi": 0, "rang": [0, 2, 17], "satisfi": 0, "expectation_fail": 0, "expect": [0, 1, 4, 7, 10, 12, 17, 18], "im_a_teapot": 0, "m": [0, 2, 3, 5, 7, 17], "teapot": 0, "misdirected_request": 0, "misdirect": 0, "unprocessable_ent": 0, "unprocess": 0, "lock": [0, 6], "failed_depend": 0, "depend": [0, 7, 8, 9, 10, 14, 15, 17, 18], "too_earli": 0, "upgrade_requir": 0, "upgrad": [0, 2], "precondition_requir": 0, "too_many_request": 0, "mani": [0, 1, 2, 4, 14, 15, 16, 17, 18], "request_header_fields_too_larg": 0, "header": [0, 2, 8, 9, 10, 14, 16], "field": [0, 3, 4, 15, 17], "unavailable_for_legal_reason": 0, "unavail": 0, "For": [0, 8, 10, 13, 14, 16, 17, 18], "legal": 0, "reason": [0, 2, 6, 10, 17, 18], "internal_server_error": 0, "intern": [0, 16, 17], "error": [0, 2, 8, 10, 12, 13, 18], "not_impl": 0, "implement": [0, 1, 2, 7, 10, 11, 13, 14, 15, 16, 17], "bad_gatewai": 0, "gatewai": 0, "service_unavail": 0, "servic": [0, 4, 6, 8], "gateway_timeout": 0, "http_version_not_support": 0, "version": [0, 2, 3, 6, 7, 10, 12, 13, 15, 16, 17, 18], "variant_also_negoti": 0, "variant": 0, "also": [0, 5, 6, 10, 14, 15, 17, 18], "negoti": 0, "insufficient_storag": 0, "insuffici": 0, "storag": [0, 4], "loop_detect": 0, "loop": [0, 1], "detect": [0, 17, 18], "not_extend": 0, "extend": [0, 2, 10, 11, 18], "network_authentication_requir": 0, "network": [0, 6], "dict": [0, 2, 9, 12, 17], "map": [0, 9, 14, 15, 17], "code": [0, 2, 5, 7, 9, 10, 14, 15, 17, 18], "e": [0, 1, 2, 3, 4, 5, 6, 10, 14, 15, 17, 18], "g": [0, 1, 2, 3, 4, 6, 10, 15, 17, 18], "404": [0, 2, 10, 12, 17, 18], "phrase": [0, 2], "actual": [0, 1, 4, 6, 7, 10, 18], "callabl": [0, 1, 4, 6, 10, 15, 17], "appstack": [0, 17], "stack": [0, 8, 14, 17], "like": [0, 1, 4, 6, 8, 10, 12, 14, 16, 17, 18], "maintain": [0, 2, 4, 7, 11, 16, 17], "top": [0, 7, 14, 17], "some": [0, 1, 2, 3, 4, 6, 7, 8, 10, 14, 15, 16, 17, 18], "decor": [0, 2, 10, 14, 15, 17, 18], "path": [0, 2, 3, 6, 8, 10, 15, 17, 18], "post": [0, 2, 14, 15, 17, 18], "put": [0, 1, 2, 10, 16, 17, 18], "delet": [0, 2, 7, 17], "instal": [0, 2, 3, 4, 6, 7, 9, 10, 11, 18], "detail": [0, 1, 2, 3, 10, 14, 15, 17, 18], "handler": [0, 1, 4, 6, 17], "parse_d": 0, "pars": [0, 15, 16, 17], "rfc1123": 0, "rfc850": 0, "asctim": 0, "timestamp": [0, 17], "utc": 0, "epoch": 0, "parse_auth": 0, "rfc2617": 0, "basic": [0, 7, 9, 15, 16, 17, 18], "user": [0, 4, 6, 10, 14, 17, 18], "tupl": [0, 12, 18], "cookie_encod": 0, "encod": [0, 2, 16, 17], "sign": [0, 2, 15, 17], "pickl": [0, 2, 17], "abl": [0, 2, 7, 10, 17, 18], "byte": [0, 1, 2, 17, 18], "cookie_decod": 0, "verifi": 0, "decod": [0, 2, 17], "cookie_is_encod": 0, "look": [0, 1, 6, 10, 11, 14, 16, 17, 18], "cooki": [0, 2, 9, 14], "yieldrout": 0, "match": [0, 2, 8, 15, 17, 18], "signatur": [0, 17], "arg": [0, 10, 16], "mai": [0, 2, 4, 6, 7, 10, 11, 14, 15, 16, 17, 18], "yield": [0, 1, 14, 17], "than": [0, 1, 6, 9, 10, 14, 15, 17, 18], "take": [0, 3, 4, 6, 10, 14, 17, 18], "best": [0, 7, 14, 15, 17], "describ": [0, 7, 10, 15, 17, 18], "b": [0, 3, 4, 7, 9, 16, 17], "y": [0, 7], "c": [0, 4, 6, 9, 17, 18], "5": [0, 1, 2, 6, 9, 14, 17, 18], "d": [0, 1, 4, 5, 14, 15, 17], "6": [0, 2, 17], "path_shift": 0, "script_nam": [0, 2, 14], "path_info": [0, 14], "shift": 0, "fragment": [0, 15], "vice": 0, "versa": 0, "number": [0, 1, 3, 6, 7, 14, 15, 17, 18], "neg": 0, "direct": [0, 9, 17], "multidict": [0, 2, 17], "k": 0, "store": [0, 4, 10, 16, 17, 18], "per": [0, 1, 10, 12, 17], "behav": [0, 1, 4, 17], "exactli": [0, 1, 17, 18], "normal": [0, 1, 7, 16, 17, 18], "newest": [0, 17], "given": [0, 2, 10, 15, 16, 17, 18], "special": [0, 1, 2, 4, 16, 17], "full": [0, 2, 6, 8, 14, 16, 17, 18], "list": [0, 2, 4, 6, 7, 9, 10, 15, 17], "set": [0, 2, 4, 6, 7, 8, 10, 11, 12, 13, 16, 17, 18], "provid": [0, 4, 6, 9, 10, 11, 13, 14, 15, 16, 17], "view": [0, 4, 8, 16, 17, 18], "": [0, 1, 3, 4, 7, 10, 13, 14, 15, 17, 18], "item": [0, 4, 12, 15, 16, 18], "iterkei": 0, "itervalu": 0, "iteritem": 0, "index": [0, 2, 9, 12, 14, 15], "most": [0, 1, 2, 4, 6, 7, 10, 12, 14, 16, 17, 18], "recent": [0, 7, 17], "present": [0, 2, 7, 10, 17, 18], "convers": 0, "cast": [0, 4, 18], "specif": [0, 1, 4, 6, 7, 10, 14, 15], "append": [0, 17], "add": [0, 1, 2, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18], "replac": [0, 1, 2, 10, 13, 14, 18], "singl": [0, 2, 4, 6, 9, 10, 17, 18], "getal": [0, 17], "possibli": [0, 17], "empti": [0, 1, 16, 17], "geton": 0, "alias": 0, "wtform": [0, 2, 17], "mimic": 0, "django": 0, "getlist": 0, "headerdict": 0, "ka": [0, 4, 16], "case": [0, 1, 2, 7, 9, 10, 12, 14, 15, 16, 17, 18], "insensit": [0, 12, 17], "old": [0, 2, 4, 5, 7, 15, 17, 18], "instead": [0, 1, 2, 6, 7, 8, 10, 17, 18], "formsdict": [0, 2], "addition": [0, 1, 2, 17], "which": [0, 1, 4, 7, 10, 13, 14, 16, 17, 18], "unmodifi": [0, 9, 10, 17], "nativ": [0, 2, 4], "contain": [0, 4, 7, 10, 12, 15, 16, 17, 18], "attribut": [0, 2, 10, 17], "its": [0, 4, 14, 16, 17, 18], "automat": [0, 2, 6, 10, 12, 16, 17, 18], "de": [0, 2, 5, 13, 14], "recod": 0, "input_encod": 0, "utf8": [0, 16, 17], "miss": [0, 2, 8, 10, 17], "recode_unicod": 0, "unicod": [0, 2, 17], "first": [0, 1, 4, 5, 7, 9, 10, 15, 16, 17, 18], "latin1": [0, 17], "copi": [0, 9, 14, 17], "librari": [0, 1, 6, 9, 11, 12, 13, 14, 16, 17, 18], "want": [0, 1, 2, 4, 6, 7, 9, 10, 14, 16, 17, 18], "dictionari": [0, 2, 4, 10, 14, 16, 17, 18], "getunicod": [0, 17], "wsgiheaderdict": [0, 17], "environ": [0, 1, 2, 7, 8, 10, 14, 18], "wrap": [0, 10, 16, 17], "conveni": [0, 9, 17], "http_": 0, "2": [0, 2, 9, 10, 17, 18], "3": [0, 1, 2, 9, 14, 17, 18], "lossless": 0, "charact": [0, 2, 4, 15, 16, 17, 18], "remain": 0, "stabl": [0, 6, 7, 9, 17], "relev": 0, "pep": [0, 1], "333": 0, "444": 0, "3333": [0, 1], "cgikei": 0, "content_typ": [0, 17], "content_length": 0, "do": [0, 1, 4, 6, 7, 9, 10, 12, 14, 16, 17, 18], "have": [0, 1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18], "prefix": [0, 4, 10], "raw": [0, 2, 18], "iter": [0, 1, 4, 17], "head": [0, 1, 16, 17], "pop": [0, 17], "remov": [0, 2, 4, 10, 16, 17, 18], "push": [0, 7, 14, 17], "resourcemanag": [0, 2], "base": [0, 1, 2, 6, 7, 10, 11, 14, 16, 17], "open": [0, 1, 4, 5, 7, 12, 17, 18], "built": [0, 1, 2, 6, 9, 10, 11, 13, 14, 16, 17, 18], "cachemod": 0, "manag": [0, 1, 6, 17, 18], "search": [0, 7, 8, 10, 17], "bound": 0, "resourc": [0, 14, 17], "file": [0, 2, 3, 6, 7, 9, 10, 11, 14, 18], "add_path": 0, "control": [0, 2, 3, 4, 6, 10, 14, 15, 17], "lookup": [0, 6, 16], "cach": [0, 2, 10, 12, 14, 16, 17, 18], "One": [0, 6, 7], "resolv": [0, 7], "clear": [0, 2, 4, 10, 17], "exist": [0, 2, 4, 7, 12, 13, 17, 18], "rel": [0, 1, 6, 17], "turn": [0, 4, 14, 17], "absolut": [0, 2, 8], "end": [0, 1, 6, 10, 12, 14, 16, 17, 18], "filenam": [0, 4, 8, 12, 17], "strip": [0, 14, 16, 18], "off": [0, 4, 7, 14, 17], "o": [0, 1, 6, 14, 17, 18], "getcwd": 0, "posit": [0, 5], "easi": [0, 1, 6, 7, 10, 16, 17, 18], "along": [0, 4, 8, 17, 18], "python": [0, 1, 2, 3, 4, 5, 6, 7, 12, 13, 14, 15, 17, 18], "__file__": [0, 6, 18], "order": [0, 1, 2, 6, 7, 17, 18], "returend": 0, "symlink": 0, "follow": [0, 1, 2, 4, 7, 9, 10, 12, 13, 15, 16, 17, 18], "speed": [0, 2, 10, 14, 16], "up": [0, 1, 2, 7, 8, 10, 14, 17, 18], "futur": [0, 2, 7, 10, 15, 17], "r": [0, 1, 2, 15], "kwarg": [0, 10, 16], "rais": [0, 2, 4, 10, 13, 14, 16, 17, 18], "ioerror": 0, "fileupload": [0, 17], "fileobj": 0, "bytesio": [0, 17], "buffer": [0, 1, 17], "upload": [0, 9], "raw_filenam": [0, 17], "sent": [0, 2, 17, 18], "client": [0, 1, 2, 8, 17], "unsaf": 0, "addit": [0, 2, 3, 4, 10, 12, 16, 17, 18], "get_head": 0, "mulripart": 0, "part": [0, 2, 6, 7, 10, 11, 12, 15, 17, 18], "system": [0, 12, 14, 17, 18], "ensur": [0, 10, 15, 17], "compat": [0, 2, 6, 7, 10], "ascii": 0, "letter": [0, 15], "digit": [0, 15, 17, 18], "dash": 0, "underscor": [0, 4], "dot": [0, 2, 4, 5], "final": [0, 2, 9, 10, 17], "accent": 0, "possibl": [0, 1, 2, 7, 8, 14, 16, 17, 18], "whitespac": 0, "lead": 0, "tail": 0, "limit": [0, 2, 6, 9, 10, 17], "255": 0, "save": [0, 14, 15, 17, 18], "destin": 0, "overwrit": [0, 17], "chunk_siz": 0, "65536": 0, "disk": [0, 4, 14, 17], "directori": [0, 6, 8, 9, 17, 18], "ad": [0, 2, 10, 17, 18], "overwritten": 0, "read": [0, 1, 2, 4, 7, 10, 13, 17, 18], "time": [0, 1, 2, 4, 6, 7, 10, 14, 16, 17, 18], "64kb": 0, "bottleexcept": [0, 14], "catchal": [0, 14, 17], "autojson": [0, 4], "each": [0, 1, 2, 4, 6, 7, 10, 12, 13, 15, 16, 17, 18], "repres": [0, 4], "distinct": [0, 17], "web": [0, 1, 6, 7, 8, 11, 14, 17], "consist": [0, 3, 12, 15, 17], "configur": [0, 2, 6, 7, 9, 10, 17, 18], "handl": [0, 1, 2, 6, 10, 12, 14, 18], "let": [0, 1, 4, 6, 7, 10, 14, 17, 18], "middlewar": [0, 8, 9, 11, 17], "config": [0, 4, 10, 15, 17], "configdict": [0, 2, 4], "caught": 0, "httperror": [0, 2, 10, 12, 14, 17], "add_hook": 0, "attach": [0, 6, 17], "hook": [0, 4, 9, 10], "three": [0, 2, 6, 7, 15, 16, 18], "before_request": [0, 14], "execut": [0, 10, 12, 14, 16, 17, 18], "onc": [0, 1, 4, 6, 7, 10, 12, 13, 14, 16, 17, 18], "befor": [0, 1, 4, 7, 9, 10, 13, 14, 15, 17], "context": [0, 2, 4, 9, 13, 14, 17], "ha": [0, 1, 4, 9, 10, 16, 17, 18], "happen": [0, 1, 17], "yet": [0, 7, 17], "after_request": [0, 14], "after": [0, 7, 10, 16, 17, 18], "regardless": [0, 17], "outcom": 0, "app_reset": 0, "whenev": [0, 17], "remove_hook": 0, "trigger_hook": 0, "_bottle__nam": 0, "trigger": [0, 4, 7, 12, 17], "mount": [0, 2, 17], "plain": [0, 16, 17, 18], "url": [0, 1, 2, 6, 7, 8, 9, 10, 14, 15, 17, 18], "root_app": 0, "admin": [0, 4, 6, 10, 14], "admin_app": 0, "point": [0, 1, 7, 9, 10, 14, 17, 18], "slash": [0, 9, 15, 17, 18], "mandatori": [0, 7], "underli": 0, "merg": [0, 2, 7, 9, 17], "anoth": [0, 2, 4, 7, 10, 16, 17, 18], "keep": [0, 7, 9, 10, 12, 16, 17, 18], "owner": 0, "mean": [0, 7, 10, 17], "prepar": [0, 6, 16], "being": [0, 10], "appli": [0, 2, 4, 7, 10, 17, 18], "simpl": [0, 1, 4, 9, 11, 14, 17, 18], "uninstal": [0, 10, 17], "forc": [0, 10, 17], "id": [0, 2, 15, 17, 18], "close": [0, 1, 10, 12, 14, 16, 17, 18], "same": [0, 2, 6, 10, 12, 14, 15, 16, 17, 18], "urlarg": 0, "extract": 0, "405": 0, "get_url": 0, "routenam": 0, "add_rout": 0, "skip": [0, 7, 10, 16, 17, 18], "hello": [0, 1, 9, 13, 14, 15, 16], "def": [0, 1, 4, 8, 9, 10, 12, 13, 14, 15, 17, 18], "wildcard": [0, 2, 9, 17], "router": [0, 2, 10, 15], "syntax": [0, 2, 4, 8, 9, 17, 18], "specifi": [0, 3, 6, 10, 15, 16, 17], "shortcut": [0, 17], "avoid": [0, 1, 2, 7, 10, 15, 17], "equal": [0, 2, 8, 10, 15], "These": [0, 2, 3, 7, 9, 10, 16, 17], "500": [0, 10, 17], "regist": 0, "start_respons": [0, 8, 14], "rule": [0, 4, 7, 9, 10, 16, 17], "skiplist": [0, 10], "metadata": [0, 9, 17], "demand": [0, 2, 3, 10, 17], "ture": 0, "regular": [0, 2, 8, 15, 16, 17, 18], "usabl": [0, 17], "wiki": [0, 10, 17], "page": [0, 1, 7, 10, 12, 13, 14, 16, 18], "origin": [0, 2, 7, 10, 14, 17], "introspect": [0, 4, 10], "meta": [0, 9, 10, 11, 17], "properti": [0, 2], "subsequ": [0, 10], "forget": [0, 1], "next": [0, 1, 2, 7, 8, 10, 15, 17, 18], "work": [0, 1, 4, 6, 7, 8, 9, 14, 15, 16, 17, 18], "immedi": [0, 10, 16, 17], "all_plugin": 0, "get_undecorated_callback": 0, "try": [0, 1, 10, 15, 17], "recov": 0, "get_callback_arg": 0, "inspect": [0, 10, 13, 14], "get_config": 0, "check": [0, 4, 16, 17, 18], "alia": 0, "baserequest": [0, 2, 17], "wrapper": [0, 10, 13], "lot": [0, 1, 2, 4, 5, 6, 7, 10, 15, 16, 17, 18], "them": [0, 1, 2, 7, 14, 16, 17, 18], "ext": [0, 12, 13, 17], "recommend": [0, 2, 7, 14, 17], "wai": [0, 6, 7, 8, 10, 14, 15, 16, 17, 18], "memfile_max": [0, 17], "102400": 0, "maximum": [0, 17], "size": [0, 1, 18], "memori": [0, 4, 10, 12, 17], "bodi": [0, 1, 2, 10, 16], "real": [0, 1, 5, 8, 10, 18], "url_arg": 0, "fix": [0, 2, 7, 8, 10], "broken": [0, 10], "edg": 0, "request_method": 0, "uppercas": 0, "NOT": [0, 6, 9, 18], "get_cooki": [0, 2, 17], "secret": [0, 17], "To": [0, 2, 4, 6, 7, 8, 10, 14, 16, 17, 18], "must": [0, 1, 2, 7, 10, 14, 17, 18], "baserespons": [0, 2], "set_cooki": [0, 2, 17], "anyth": [0, 7, 10, 16, 17, 18], "goe": [0, 17], "wrong": [0, 17, 18], "queri": [0, 2, 6, 18], "query_str": [0, 17], "sometim": [0, 6, 7, 17, 18], "confus": [0, 7, 17], "thei": [0, 1, 2, 4, 6, 7, 14, 16, 17], "multipart": [0, 14, 17], "param": [0, 4, 17], "combin": [0, 16, 17, 18], "json": [0, 2, 4, 18], "hold": [0, 18], "smaller": 0, "exhaust": [0, 1], "seek": [0, 14], "either": [0, 1, 2, 6, 14, 17, 18], "io": [0, 1, 6], "input": [0, 16, 17, 18], "just": [0, 1, 4, 6, 7, 10, 14, 16, 17, 18], "chunk": [0, 1, 17], "transfer": 0, "wa": [0, 1, 2, 7, 15, 17, 18], "cgi": [0, 2], "fieldstorag": 0, "hostnam": 0, "scheme": 0, "your": [0, 1, 2, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18], "live": [0, 7], "behind": [0, 5, 8], "revers": [0, 6, 17], "balanc": [0, 8], "forward": [0, 1, 6, 17, 18], "correctli": [0, 17], "urlpart": [0, 2], "urlpars": 0, "splitresult": 0, "becaus": [0, 1, 2, 7, 14, 15, 16, 17], "visibl": [0, 7, 18], "fullpath": 0, "everyth": [0, 8, 16, 17], "between": [0, 1, 6, 10, 15, 16, 17, 18], "initi": 0, "portion": [0, 9], "higher": [0, 18], "script": [0, 1, 6, 9, 14, 17, 18], "segment": [0, 15, 16, 17], "integ": [0, 2, 10, 15, 17, 18], "otherwis": [0, 9, 16, 18], "unknown": 0, "In": [0, 1, 2, 7, 8, 9, 10, 14, 15, 16, 17, 18], "lowercas": [0, 4], "is_xhr": 0, "xmlhttprequest": [0, 17], "javascript": [0, 1, 5, 17, 18], "With": [0, 1, 4, 17], "popular": [0, 14], "is_ajax": [0, 17], "ajax": [0, 1, 17], "right": [0, 6, 7, 8, 9, 14, 15, 17, 18], "term": [0, 18], "auth": [0, 2, 17], "password": [0, 17, 18], "digest": 0, "front": [0, 14, 16], "remote_us": 0, "On": [0, 1, 10, 18], "remote_rout": [0, 2], "ip": [0, 3, 6, 17, 18], "were": [0, 2, 7, 10, 16, 17], "involv": [0, 1, 9], "zero": 0, "note": [0, 9, 17, 18], "can": [0, 1, 2, 3, 4, 6, 7, 10, 12, 14, 15, 16, 17, 18], "forg": [0, 17], "malici": [0, 17], "remote_addr": [0, 2, 17], "shallow": 0, "word": [0, 1, 2, 9, 10], "global": [0, 3, 6, 10, 17, 18], "differ": [0, 1, 4, 6, 7, 10, 12, 14, 15, 16, 17, 18], "usual": [0, 4, 10, 14, 16, 17, 18], "dure": [0, 14, 17, 18], "cycl": [0, 12], "well": [0, 1, 4, 6, 17, 18], "similar": [0, 1, 2, 6, 7, 10, 15, 17], "adjust": 0, "moreov": 0, "instanti": 0, "custom": [0, 2, 3, 4, 8, 10, 15, 16, 17], "overrul": [0, 10], "more_head": 0, "notabl": 0, "over": [0, 1, 2, 6, 7, 10, 17], "200": [0, 2, 14, 17], "line": [0, 1, 2, 10, 16, 18], "pair": [0, 3, 17], "cl": 0, "self": [0, 1, 3, 4, 10, 12, 14, 17], "status_lin": [0, 2], "status_cod": [0, 2], "writeabl": 0, "numer": [0, 2], "100": [0, 18], "999": 0, "brain": 0, "both": [0, 1, 3, 6, 7, 10, 12, 14, 16, 17, 18], "updat": [0, 1, 4, 9, 10, 13, 16, 18], "accordingli": [0, 6], "previous": [0, 17], "set_head": [0, 17], "add_head": [0, 14, 17], "duplic": 0, "iter_head": 0, "headerlist": [0, 14], "conform": [0, 1, 6, 10], "expir": [0, 17], "rfc": [0, 14], "2109": 0, "morsel": 0, "max_ag": [0, 17], "ag": [0, 17], "datetim": [0, 17], "unix": [0, 17, 18], "domain": [0, 17], "secur": [0, 2, 7, 13, 17], "connect": [0, 1, 6, 9, 10, 12, 14, 17, 18], "httponli": [0, 17], "prevent": [0, 1, 14, 16, 17], "side": [0, 1, 2, 4, 6, 17], "newer": [0, 4, 17], "neither": [0, 17], "nor": [0, 17, 18], "browser": [0, 1, 9, 13, 14, 17, 18], "session": [0, 9, 17], "soon": [0, 1, 5, 7, 10, 17], "window": [0, 17, 18], "cryptograph": [0, 17], "manipul": [0, 17], "mind": [0, 10, 16, 17], "4kb": 0, "warn": [0, 7, 17, 18], "encrypt": [0, 17], "still": [0, 1, 2, 7, 10, 14, 15, 16, 17, 18], "protect": [0, 2, 17, 18], "restor": [0, 7, 17], "main": [0, 1, 7, 17, 18], "intent": [0, 17], "unpickl": [0, 17], "delete_cooki": 0, "Be": [0, 17], "Its": [0, 17], "build": [0, 6, 8, 9, 10, 17], "accur": 0, "two": [0, 4, 7, 12, 14, 15, 16, 17, 18], "notic": [0, 9, 18], "invok": [0, 1, 17], "httprespons": [0, 2, 14, 17], "traceback": [0, 14, 17], "engin": [0, 2, 6, 9, 12, 15, 17, 18], "basetempl": [0, 16], "mix": [0, 1, 18], "without": [0, 1, 6, 7, 9, 14, 17, 18], "minim": 0, "__init__": [0, 10, 14], "str": [0, 4, 10, 15, 17, 18], "guess": [0, 17, 18], "assum": [0, 7, 17, 18], "should": [0, 1, 2, 3, 4, 6, 7, 8, 10, 14, 15, 16, 17, 18], "classmethod": 0, "common": [0, 1, 2, 4, 6, 9, 14, 15, 16, 17, 18], "extens": [0, 17, 18], "hit": [0, 17], "global_config": 0, "again": [0, 6, 7, 10, 14, 16, 17, 18], "refresh": [0, 16], "render": [0, 1, 11, 16, 17], "directli": [0, 6, 7, 10, 15, 16, 17, 18], "tpl_name": 0, "behavior": [0, 10, 14, 16, 17], "var": [0, 1, 6, 18], "fill": 0, "out": [0, 5, 6, 8, 9, 14], "someth": [0, 5, 16, 17, 18], "castfilt": 0, "write": [0, 1, 2, 7, 10, 14, 16, 17, 18], "own": [0, 4, 6, 7, 14, 15, 17, 18], "favourit": 0, "predefin": [0, 17], "four": [0, 2, 17], "fulli": 0, "simpletempl": [0, 2, 9, 17], "makotempl": 0, "www": [0, 6, 14, 18], "org": [0, 2, 14, 17], "mako_view": 0, "mako_templ": 0, "cheetahtempl": 0, "cheetah_view": 0, "cheetah_templ": 0, "jinja2templ": 0, "jinja": 0, "pocoo": 0, "jinja2_view": 0, "jinja2_templ": 0, "specialis": 0, "design": [1, 6, 7, 8, 17], "pattern": [1, 8], "don": [1, 2, 4, 7, 10, 13, 14, 16, 17], "t": [1, 2, 4, 7, 8, 10, 13, 14, 16, 17, 18], "natur": 1, "why": [1, 7], "framework": [1, 2, 4, 6, 8, 11, 14, 17, 18], "tornado": [1, 6], "twist": [1, 6], "api": [1, 2, 6, 7, 9, 17, 18], "expos": [1, 17], "featur": [1, 2, 4, 7, 8, 13, 14, 16, 17, 18], "bottl": [1, 2, 3, 4, 5, 6, 7, 10, 11, 15, 16, 17], "share": [1, 6, 7, 10, 14], "thank": [1, 2], "awesom": 1, "gevent": [1, 2, 6, 14], "project": [1, 2, 5, 7, 9, 11, 14, 15, 17, 18], "articl": [1, 9, 17], "document": [1, 2, 6, 9, 15, 16, 17, 18], "usag": [1, 3, 9, 10, 11, 16, 17], "briefli": [1, 10], "request": [1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 18], "respons": [1, 2, 9, 10, 11, 13, 14, 18], "circl": 1, "socket": [1, 3, 17], "As": [1, 6, 7, 10, 17, 18], "enough": [1, 10, 14, 17], "snag": [1, 17], "need": [1, 2, 6, 7, 10, 12, 14, 15, 16, 17, 18], "wait": [1, 6, 14], "data": [1, 2, 6, 9, 10, 14, 18], "databas": [1, 2, 4, 6, 10, 11, 12, 17, 18], "busi": 1, "solut": [1, 8, 17, 18], "occupi": 1, "answer": [1, 9], "consequ": [1, 17], "ongo": 1, "high": [1, 6, 17], "overhead": [1, 2, 4, 6, 10, 17], "pool": [1, 4], "20": 1, "less": [1, 10, 17], "stall": 1, "effect": [1, 4, 10, 17, 18], "dead": 1, "everyon": [1, 7], "els": [1, 4, 13, 16, 17, 18], "chat": [1, 7], "poll": 1, "reach": 1, "concurr": [1, 6], "That": [1, 4, 9, 10, 18], "pretti": [1, 18], "small": [1, 2, 5, 7, 8, 14, 17, 18], "worker": [1, 4], "low": [1, 17], "due": [1, 6, 14], "while": [1, 7, 10, 16, 17, 18], "cheap": [1, 6], "compar": [1, 4], "fork": [1, 6, 7, 13], "expens": [1, 6], "modul": [1, 2, 3, 4, 6, 9, 12, 13, 17, 18], "tradit": 1, "veri": [1, 4, 6, 7, 10, 12, 14, 16, 17, 18], "spawn": [1, 17], "thousand": 1, "almost": [1, 7], "individu": [1, 17], "impact": 1, "abil": [1, 14, 17, 18], "virtual": [1, 6, 17, 18], "unlimit": [1, 6], "incredibli": [1, 17], "feel": [1, 9], "massiv": 1, "here": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18], "monkei": [1, 10, 14], "patch_al": [1, 14], "sleep": [1, 14], "rout": [1, 2, 3, 4, 9, 12, 13, 14, 18], "stream": [1, 14, 17, 18], "middl": [1, 14], "caus": [1, 10, 17], "patch": [1, 2, 9, 10], "cpu": [1, 6], "pseudo": [1, 14], "would": [1, 7, 8, 14, 17, 18], "whole": [1, 2, 7, 10, 16, 17], "comfort": 1, "ins": 1, "correspond": [1, 7, 9, 17, 18], "http": [1, 6, 7, 8, 9, 10, 14, 18], "localhost": [1, 3, 6, 9, 14, 17, 18], "show": [1, 3, 10, 12, 14, 15, 16, 17, 18], "rather": [1, 14], "now": [1, 2, 7, 10, 14, 16, 17, 18], "problem": [1, 9, 10, 17], "certain": [1, 10, 18], "amount": [1, 17], "few": [1, 18], "benchmark": 1, "tool": [1, 3, 4, 14, 17], "ab": 1, "httperf": 1, "measur": [1, 10], "perform": [1, 2, 6, 10, 14, 17, 18], "node": 1, "j": [1, 14], "friend": 1, "object": [1, 2, 3, 4, 6, 9, 11, 12, 13, 14, 18], "kept": [1, 18], "explicitli": [1, 10, 16, 17, 18], "later": [1, 7, 12, 15, 16, 17, 18], "class": [1, 2, 4, 9, 10, 12, 13, 14, 16, 17], "mainhandl": 1, "requesthandl": 1, "someasyncwork": 1, "on_data": 1, "lambda": [1, 4], "on_finish": 1, "finish": 1, "benefit": 1, "previou": [1, 2], "how": [1, 6, 9, 14, 15, 17, 18], "thing": [1, 7, 8, 17, 18], "we": [1, 7, 9, 10, 16, 17], "cannot": [1, 4, 7, 10], "third": [1, 10, 11, 17, 18], "standard": [1, 6, 9, 12, 15, 16, 17, 18], "queue": [1, 11], "simul": [1, 16], "detach": 1, "rewrit": [1, 7], "stopiter": 1, "perspect": 1, "stop": [1, 15, 16, 17, 18], "around": [1, 17], "about": [1, 4, 5, 7, 9, 10, 11, 17, 18], "speak": 1, "sinc": [1, 2, 12, 17], "probabl": [1, 7, 10, 16, 17], "know": [1, 7, 8, 10, 18], "what": [1, 2, 4, 7, 16, 17, 18], "bidirect": 1, "commun": [1, 6, 7], "channel": [1, 7, 17], "thankfulli": 1, "hard": [1, 7, 9], "u": [1, 4, 7, 9, 16, 17, 18], "endpoint": 1, "receiv": [1, 2, 4, 7, 17, 18], "messag": [1, 3, 6, 10, 17, 18], "send": [1, 7, 17, 18], "back": [1, 6, 7, 12, 17], "abort": [1, 17], "handle_websocket": 1, "wsock": 1, "400": 1, "except": [1, 2, 4, 7, 10, 13, 14, 17, 18], "websocketerror": 1, "break": [1, 2, 7, 10, 17], "pywsgi": 1, "wsgiserv": [1, 6, 17], "geventwebsocket": 1, "websockethandl": 1, "handler_class": 1, "serve_forev": 1, "idea": [1, 6, 7, 10, 18], "site": [1, 4, 7, 14], "realli": [1, 7, 17, 18], "straight": 1, "doctyp": 1, "w": 1, "com": [1, 4, 6, 7, 8, 12, 13, 17, 18], "onopen": 1, "world": [1, 6, 9, 14, 16], "onmessag": 1, "evt": 1, "alert": 1, "parser": 2, "The": [2, 3, 4, 6, 7, 9, 12, 13, 14, 15, 16, 18], "rebas": [2, 7, 16], "templat": [2, 6, 9, 10, 12, 18], "max_param": 2, "hash": 2, "collis": [2, 10], "bug": [2, 7, 10, 17, 18], "cpython": 2, "year": [2, 5], "ago": 2, "product": [2, 6, 7, 14, 17, 18], "consid": [2, 7, 8, 15, 16, 17], "least": [2, 7, 17, 18], "distributor": 2, "draft": [2, 9, 10], "develop": [2, 3, 6, 11, 18], "blog": [2, 7, 17], "2to3": 2, "anymor": 2, "download": [2, 7, 9, 12, 13, 17], "static_fil": [2, 10, 17, 18], "locat": [2, 8, 17], "bundl": [2, 10], "waitress": [2, 6], "assign": [2, 17, 18], "better": [2, 18], "webob": 2, "werkzeug": [2, 4, 11, 14], "deprec": [2, 15, 17], "simpletaltempl": 2, "seem": 2, "v2": 2, "offer": [2, 7, 17, 18], "uniqu": [2, 10, 15, 17, 18], "topmost": 2, "silent": 2, "ignor": [2, 9, 10, 16, 17], "transit": 2, "smooth": 2, "verbos": [2, 17], "place": [2, 4, 16, 18], "transpar": 2, "undefin": [2, 16], "stpl": [2, 16], "setdefault": [2, 4, 16], "escap": [2, 15, 16, 18], "doubl": [2, 13, 16, 18], "quot": 2, "int": [2, 4, 14, 15, 17, 18], "filter": [2, 9, 17], "float": [2, 15, 17, 18], "command": [2, 12, 13, 18], "introduc": [2, 7, 15, 18], "easier": [2, 4, 7, 17, 18], "expand": 2, "wsgi": [2, 6, 8, 9, 13, 18], "accpet": 2, "drop": [2, 14], "gunicorn": [2, 6], "13": [2, 5], "brand": 2, "guid": [2, 7, 11, 14, 17], "got": [2, 5], "meinheld": [2, 6], "bjoern": [2, 6, 9], "simplet": 2, "runtim": [2, 4, 6, 9, 17], "mako": [2, 9], "improv": [2, 16, 17], "run_onc": 2, "reduc": [2, 7], "30": 2, "optim": [2, 4, 6, 9, 17], "8ccb2d": 2, "f72a7c": 2, "b14b9a": 2, "googl": [2, 7, 9], "af93ec": 2, "rare": [2, 7, 10, 16, 17], "backward": [2, 7, 10], "mark": [2, 7, 16, 18], "noteworthi": 2, "static": [2, 6, 10, 11, 14, 15, 18], "wild": [2, 18], "card": 2, "backslash": [2, 16], "easili": [2, 14, 17, 18], "4": [2, 17], "behaviour": [2, 7, 14, 15], "encapsul": 2, "alphanumer": [2, 15], "interpret": [2, 6, 18], "anonym": 2, "achiev": [2, 10, 17, 18], "breakthebottl": 2, "bad_html": 2, "good_html": 2, "obsolet": 2, "renam": 2, "_environ": 2, "307": 2, "303": [2, 17], "incomplet": [2, 6, 17], "structur": [2, 4, 9, 17], "drastic": 2, "setup": [2, 4, 9, 10, 12, 13, 14, 15, 17], "dynam": [2, 9, 14, 15, 18], "send_fil": [2, 17], "critic": [2, 7], "bugfix": [2, 7], "written": [2, 6, 18], "marcel": [2, 5, 9], "hellkamp": [2, 5, 9], "marc": [2, 5, 16], "bottlepi": [2, 7, 17], "peopl": [2, 14, 18], "who": 2, "spread": [2, 6], "mail": [2, 5, 7, 9, 10, 17], "made": [2, 10, 17, 18], "hope": 2, "alphabet": 2, "sort": [2, 18], "complet": [2, 7, 9, 17], "pleas": [2, 7, 9, 10, 13, 17, 18], "tell": [2, 4, 6, 7, 10, 17, 18], "me": [2, 5], "yourself": [2, 14, 16, 17, 18], "acasaju": 2, "adam": 2, "smith": [2, 17], "alexei": 2, "borzenkov": 2, "alexi": 2, "dabovil": 2, "anton": 2, "sipo": 2, "kolechkin": 2, "apexi200sx": 2, "apheag": 2, "billma": 2, "brad": 2, "greenle": 2, "brandon": 2, "gilmor": 2, "branko": 2, "vukel": 2, "brian": 2, "sierakowski": 2, "wickman": 2, "carl": 2, "scharenberg": 2, "damien": 2, "degoi": 2, "david": 2, "buxton": 2, "duan": 2, "johnson": 2, "fcamel": 2, "frank": 2, "murphi": 2, "freder": 2, "junod": 2, "goldfaber3012": 2, "greg": 2, "milbi": 2, "gstein": 2, "ian": 2, "davi": 2, "itamar": 2, "nabriski": 2, "iuri": 2, "silvio": 2, "jaimi": 2, "murdock": 2, "jeff": 2, "nichol": 2, "jeremi": 2, "kellei": 2, "joegest": 2, "johann": 2, "krampf": 2, "jona": 2, "haag": 2, "joshua": 2, "roesslein": 2, "karl": 2, "kevin": 2, "zuber": 2, "kraken": 2, "kyle": 2, "fritz": 2, "m35": 2, "marco": 2, "neve": 2, "masklinn": 2, "michael": 2, "labb": 2, "soulier": 2, "reddit": 2, "nicola": 2, "vanhoren": 2, "robert": 2, "rollin": 2, "rogereren": 2, "rwxrwx": 2, "santiago": 2, "gala": 2, "sean": 2, "collin": 2, "sebastian": 2, "wollrath": 2, "seth": 2, "sigurd": 2, "h\u00f8gsbro": 2, "stuart": 2, "rackham": 2, "sun": 2, "ning": 2, "tom\u00e1": 2, "schertel": 2, "tristan": 2, "zajonc": 2, "voltron": 2, "wieland": 2, "hoffmann": 2, "zombat": 2, "10": [3, 9, 10, 15, 17], "py": [3, 6, 9, 12, 13, 17, 18], "h": [3, 14, 17], "exit": [3, 17], "backend": [3, 14, 17], "p": [3, 16, 17, 18], "explanatori": [3, 17], "via": [3, 4, 6, 9, 10, 17, 18], "evalu": [3, 13, 16, 17], "colon": [3, 17, 18], "grab": [3, 17, 18], "myapp": [3, 4, 6, 14, 17], "past": [3, 6, 8, 9, 14, 17, 18], "80": [3, 6, 17, 18], "serv": [3, 6, 11, 17, 18], "test": [3, 4, 6, 7, 9, 10, 12, 17, 18], "util": [3, 6, 9, 13, 17, 18], "debugplugin": [3, 17], "exc": [3, 17], "make_app": [3, 17], "central": 4, "aspect": 4, "ordinari": 4, "prefer": [4, 10, 17, 18], "sqlite": [4, 10, 11, 17, 18], "db": [4, 10, 12, 17, 18], "param2": 4, "fallback": [4, 17], "rst": 4, "email": [4, 7, 17], "my": [4, 5], "nomail": 4, "is_admin": 4, "admin_us": 4, "life": [4, 17, 18], "when": [4, 6, 7, 15, 17, 18], "come": [4, 16, 17], "identifi": [4, 15, 17], "subnamespac": 4, "use_debugg": 4, "enabl": [4, 10, 13, 17, 18], "programm": [4, 17], "hack": 4, "shown": [4, 18], "tmp": [4, 10, 12, 17], "commit": [4, 7, 10, 12, 18], "defnul": [4, 5, 7, 12, 13, 17], "load_config": 4, "ini": 4, "style": [4, 9, 18], "etc": [4, 17, 18], "conf": [4, 10], "load_dict": 4, "entir": [4, 7, 17], "flat": 4, "value2": [4, 17], "assert": [4, 14, 17], "fp": 4, "react": 4, "reconnect": 4, "background": 4, "resiz": 4, "new_valu": 4, "cancel": 4, "preserv": [4, 16, 17], "on_config_chang": 4, "switch_own_debug_mode_to": 4, "descript": [4, 6, 10, 17], "through": [4, 6, 7, 17, 18], "invalid": 4, "throw": [4, 18], "valueerror": 4, "someplugin": 4, "meta_set": 4, "val": 4, "split": [4, 7, 14, 15], "semicolon": 4, "on_chang": 4, "fast": [4, 6, 8, 9, 14, 16, 17], "retriev": [4, 17, 18], "alter": 4, "section": [4, 14, 15, 17, 18], "refer": [4, 6, 9, 10, 17, 18], "make_namespac": 4, "space": 4, "apart": [4, 17], "insert": [4, 8, 16, 17, 18], "meta_get": 4, "metafield": 4, "meta_list": 4, "autor": 5, "hi": [5, 14], "aka": [5, 17], "author": [5, 9, 11, 16], "gui": 5, "websit": [5, 18], "27": 5, "studi": 5, "comput": 5, "scienc": 5, "georg": 5, "august": 5, "univers": 5, "g\u00f6ttingen": [5, 17], "germani": 5, "favorit": [5, 6, 18], "languag": [5, 13, 16, 17, 18], "rubi": 5, "watch": [5, 7, 18], "twitter": [5, 7], "visit": [5, 17, 18], "profil": [5, 17], "github": [5, 7, 12, 13, 17], "mailinglist": [5, 7], "relat": [5, 9, 10, 11, 17], "question": [5, 9, 11, 17], "so": [5, 6, 7, 8, 9, 12, 13, 14, 17, 18], "far": [5, 18], "experi": 5, "much": [5, 16, 17, 18], "feedback": [5, 7], "decid": [5, 17], "impressum": 5, "und": 5, "kontaktdaten": 5, "german": 5, "law": 5, "die": 5, "nutzung": 5, "der": 5, "folgenden": 5, "ist": 5, "ausschlie\u00dflich": 5, "f\u00fcr": 5, "kontaktaufnahm": 5, "mit": [5, 9], "dem": 5, "betreib": 5, "dieser": 5, "webseit": 5, "bei": 5, "rechtlichen": 5, "problemen": 5, "vorgesehen": 5, "insbesonder": 5, "zu": 5, "werb": 5, "oder": 5, "\u00e4hnlichen": 5, "zwecken": 5, "ausdr\u00fccklich": 5, "untersagt": 5, "ort": 5, "37075": 5, "strass": 5, "theodor": 5, "heuss": 5, "telefon": 5, "49": 5, "551": 5, "20005915": 5, "gsite": 5, "outsid": 6, "192": 6, "168": 6, "choos": [6, 10, 18], "perfectli": [6, 17, 18], "fine": [6, 7, 17, 18], "becom": [6, 17, 18], "bottleneck": [6, 17, 18], "increas": [6, 7, 17], "elimin": 6, "asynchron": [6, 9, 14], "classic": 6, "robust": 6, "drawback": 6, "core": [6, 11, 17], "gil": 6, "hurt": 6, "anywai": [6, 7, 14, 18], "slow": [6, 17], "down": [6, 7], "intens": 6, "task": [6, 17, 18], "imag": [6, 8, 14, 17], "bit": [6, 17], "tricki": [6, 18], "advantag": 6, "potenti": 6, "understand": [6, 18], "concept": [6, 10, 17, 18], "state": [6, 12, 17, 18], "complic": 6, "easiest": [6, 17], "cherrypi": [6, 9, 14, 17, 18], "ship": [6, 14, 18], "readi": [6, 7, 8, 17], "autom": [6, 17], "homepag": [6, 9], "flup": [6, 18], "fastcgi": 6, "gae": 6, "helper": [6, 16, 17], "tri": [6, 14, 18], "rocket": 6, "power": [6, 13, 14, 15, 16, 17], "pyramid": 6, "pre": [6, 7], "partli": 6, "eventlet": 6, "greenlet": [6, 9], "diesel": 6, "fapws3": [6, 9, 18], "facebook": 6, "select": [6, 10, 12, 17, 18], "httpserver": 6, "yourapp": 6, "chdir": [6, 18], "dirnam": [6, 18], "virtualhost": [6, 18], "servernam": [6, 18], "wsgidaemonprocess": [6, 18], "group": [6, 18], "wsgiscriptalia": [6, 18], "wsgiprocessgroup": [6, 18], "wsgiapplicationgroup": [6, 18], "deni": [6, 17, 18], "9": [6, 9, 10, 17, 18], "yaml": 6, "api_vers": 6, "static_dir": 6, "trick": [6, 17], "independ": 6, "8081": 6, "8082": 6, "ones": [6, 7, 17, 18], "Then": [6, 17, 18], "act": [6, 14], "random": 6, "physic": 6, "fastest": 6, "pound": 6, "listenhttp": 6, "myclust": 6, "balancermemb": 6, "50": 6, "51": 6, "proxypass": 6, "lighttpd": 6, "mod_proxi": 6, "wsgi1": 6, "wsgi2": 6, "especi": 6, "transform": [6, 15, 17], "intend": [7, 9, 17], "interest": [7, 9, 17], "contribut": 7, "join": [7, 15, 17], "stai": [7, 8, 15], "date": 7, "our": [7, 17, 18], "subscrib": 7, "googlegroup": 7, "account": [7, 17], "tag": [7, 17, 18], "irc": [7, 17], "freenod": 7, "net": 7, "plu": 7, "technic": 7, "stuff": [7, 17], "issu": [7, 10], "tracker": 7, "plan": [7, 11], "good": [7, 10, 14, 16, 18], "discuss": [7, 14], "openli": 7, "clone": [7, 12, 13], "latest": [7, 9, 12, 13, 17], "archiv": 7, "branch": 7, "tar": 7, "zip": 7, "irregular": 7, "distribut": [7, 9, 18], "pypi": [7, 9, 17], "candid": 7, "revis": [7, 18], "outdat": 7, "mention": [7, 17], "abov": [7, 9, 16, 17, 18], "linux": [7, 18], "though": [7, 10, 17], "major": 7, "minor": 7, "promot": 7, "indic": 7, "announc": 7, "guarante": 7, "backport": 7, "mileston": 7, "depreci": 7, "tweak": [7, 18], "7": 7, "sorri": [7, 17, 18], "edit": [7, 15, 17, 18], "fact": [7, 15, 16], "rc": 7, "offici": 7, "master": [7, 17], "integr": [7, 11, 13, 17], "frozen": 7, "minut": 7, "bugfix_nam": 7, "trivial": 7, "activ": [7, 10, 17], "Thats": 7, "bottom": 7, "oh": 7, "never": [7, 14, 17], "ever": 7, "ll": [7, 17], "pull": 7, "pend": 7, "trust": [7, 17], "exact": [7, 15], "further": [7, 17, 18], "collect": [7, 9, 11, 14, 17], "comment": 7, "learn": [7, 9, 16, 17, 18], "prove": 7, "clean": [7, 9, 16, 17], "focus": 7, "sync": 7, "upstream": 7, "sphinx": [7, 17], "virtualenv": [7, 17], "manual": [7, 17, 18], "prerequisit": 7, "sudo": [7, 17], "apt": [7, 17], "venv": 7, "pip": [7, 12, 13, 17], "bin": [7, 17], "doc": [7, 10], "cd": [7, 12, 13], "pdf": [7, 17], "texliv": 7, "latex": 7, "extra": [7, 11, 17], "font": 7, "free": [7, 9], "person": [7, 9, 18], "simpli": [7, 17, 18], "click": 7, "button": 7, "done": [7, 8, 10, 15, 18], "short": [7, 16, 17, 18], "introduct": [7, 18], "privat": 7, "public": [7, 8, 17, 18], "your_github_account": 7, "remot": 7, "track": [7, 9], "go": [7, 18], "checkout": 7, "cool_featur": 7, "cool": 7, "meantim": 7, "solv": [7, 17], "onto": 7, "equival": 7, "undo": 7, "reappli": 7, "step": [7, 18], "histori": 7, "But": [7, 10, 16, 17, 18], "ve": 7, "cherri": 7, "pick": 7, "repetit": [7, 17], "my_bugfix": 7, "dev": 7, "micro": [8, 9, 14, 17], "prototyp": [8, 12], "advanc": [8, 11, 13, 15, 17], "mvc": 8, "orm": [8, 11], "scaffold": 8, "xml": 8, "rpc": 8, "although": [8, 18], "pylon": 8, "apach": [8, 18], "template_path": [8, 17], "placehold": 8, "token": [8, 16], "filepath": [8, 17], "icon": 8, "png": [8, 17], "won": [8, 10, 16, 17, 18], "lost": 8, "url_schem": 8, "reflect": 8, "snippet": [8, 14, 16], "fix_environ_middlewar": 8, "fixed_app": 8, "http_x_forwarded_host": 8, "https_app": 8, "lightweight": 9, "jinja2": 9, "cheetah": 9, "capabl": 9, "consol": [9, 13], "releas": [9, 16, 17], "easy_instal": [9, 12, 13, 17, 18], "unstabl": 9, "ask": [9, 14, 17], "quickstart": [9, 14], "content": [9, 14, 16], "deploy": 9, "glossari": 9, "convent": 9, "nest": [9, 17], "legaci": 9, "explicit": [9, 17], "howto": 9, "todo": 9, "goal": 9, "primer": [9, 14], "synchron": 9, "rescu": 9, "event": [9, 17], "websocket": 9, "recip": [9, 17], "unit": 9, "embed": 9, "trail": 9, "aliv": 9, "gzip": 9, "compress": 9, "heroku": 9, "frequent": [9, 14, 17], "pitfal": 9, "chapter": [9, 17, 18], "workflow": 9, "changelog": 9, "12": [9, 16], "11": 9, "contributor": 9, "repositori": 9, "submit": [9, 17, 18], "git": [9, 12, 13], "sqliteplugin": [9, 17], "accord": 9, "copyright": 9, "2012": 9, "permiss": [9, 17], "herebi": 9, "grant": 9, "charg": 9, "obtain": 9, "softwar": [9, 12, 18], "associ": [9, 10, 17, 18], "deal": 9, "restrict": [9, 16, 17], "publish": 9, "sublicens": 9, "sell": 9, "permit": 9, "whom": 9, "furnish": 9, "subject": 9, "condit": 9, "shall": 9, "substanti": 9, "THE": 9, "AS": 9, "warranti": 9, "OF": 9, "kind": [9, 13, 17], "OR": 9, "impli": 9, "BUT": 9, "TO": 9, "merchant": 9, "fit": [9, 14, 17], "FOR": 9, "particular": 9, "purpos": [9, 16, 17, 18], "AND": 9, "noninfring": 9, "IN": 9, "NO": 9, "holder": 9, "BE": 9, "liabl": 9, "claim": 9, "damag": 9, "liabil": 9, "whether": [9, 12, 18], "action": [9, 14, 15, 16, 17, 18], "contract": 9, "tort": 9, "aris": 9, "WITH": 9, "logo": 9, "howev": [9, 10, 17], "cover": [9, 15, 16, 17], "link": [9, 17], "footnot": [9, 14], "cours": [9, 10, 17, 18], "explain": [10, 16, 17, 18], "suggest": [10, 17], "practic": [10, 17], "everi": [10, 14, 17, 18], "Of": [10, 17, 18], "simplif": 10, "stopwatch": 10, "exec": 10, "appropri": [10, 17], "recurs": 10, "properli": [10, 18], "quit": [10, 17, 18], "effici": [10, 17], "among": 10, "fear": 10, "give": [10, 17, 18], "evolv": 10, "__call__": [10, 14], "itself": [10, 13, 14, 17, 18], "whatev": [10, 17, 18], "favor": 10, "summar": 10, "wide": 10, "mutabl": 10, "unwant": 10, "justifi": 10, "routereset": 10, "worthwhil": 10, "closur": 10, "disabl": [10, 16, 17], "hooksplugin": 10, "virtaulli": 10, "restart": [10, 17, 18], "sqlite3": [10, 11, 12, 18], "overrid": [10, 12, 17], "basi": [10, 12], "dbfile": [10, 12, 17], "autocommit": [10, 12], "dictrow": [10, 12], "isinst": [10, 17], "pluginerror": 10, "getargspec": 10, "column": [10, 18], "row": [10, 12, 17, 18], "column_nam": 10, "row_factori": 10, "rv": 10, "integrityerror": 10, "rollback": 10, "60": 10, "think": [10, 18], "where": [10, 12, 16, 17, 18], "fetchon": [10, 12, 17, 18], "showpag": 10, "fname": 10, "za": 10, "change_dbfil": 10, "therefor": 10, "parti": [11, 17], "cork": 11, "flash": 11, "hotqueu": 11, "fifo": 11, "upon": [11, 14], "redi": 11, "macaron": 11, "mapper": 11, "memcach": 11, "mongodb": 11, "servefil": 11, "reusabl": 11, "sqlalchemi": 11, "web2pyd": 11, "web2pi": 11, "dal": 11, "altern": [11, 13, 17, 18], "sql": [12, 18], "driven": 12, "larger": [12, 18], "postgresql": 12, "mysql": 12, "simplifi": [12, 15, 17], "showitem": 12, "At": [12, 18], "outstand": 12, "transact": 12, "occur": [12, 17], "roll": 12, "test_db": 12, "cache_db": 12, "interact": [13, 18], "req": 13, "lazi": 13, "say_hello": 13, "greet": [13, 17], "en": [13, 17], "hallo": 13, "fr": 13, "bonjour": 13, "accept_languag": 13, "best_match": 13, "notaccept": 13, "evalex": 13, "risk": 13, "request_class": 13, "debugger_class": 13, "debuggedappl": [13, 14], "obei": 13, "could": [14, 17], "beaker": 14, "sessionmiddlewar": 14, "session_opt": 14, "cookie_expir": 14, "300": 14, "data_dir": 14, "counter": [14, 17], "catch": [14, 17, 18], "crash": [14, 17], "propag": 14, "debuggingmiddlewar": 14, "rest": [14, 17, 18], "evalexcept": 14, "against": 14, "nose": 14, "__name__": 14, "__main__": 14, "mywebapp": 14, "test_webapp_index": 14, "intim": 14, "webtest": 14, "testapp": 14, "test_functional_login_logout": 14, "login": [14, 17], "foo": 14, "bar": 14, "log": [14, 17], "successfulli": [14, 18], "logout": 14, "unsuccessfulli": 14, "401": [14, 17], "subproject": 14, "somewsgiappl": 14, "subpath": 14, "call_wsgi": 14, "new_environ": 14, "treat": [14, 17], "strippathmiddlewar": 14, "rstrip": 14, "ietf": 14, "rfc3986": 14, "txt": 14, "explan": 14, "mechan": [14, 15], "xhr": 14, "conjunct": 14, "lend": 14, "async": 14, "sampl": 14, "brows": 14, "css": [14, 17], "straightforward": 14, "proposit": 14, "corner": 14, "crop": 14, "proper": [14, 18], "fly": 14, "video": 14, "algorithm": 14, "deflat": 14, "often": [14, 17], "big": [14, 17], "longer": 14, "gzipfilt": 14, "accomplish": 14, "cross": [14, 17], "enable_cor": 14, "say_foo": 14, "say_bar": 14, "friendli": 14, "cloud": 14, "platform": 14, "infastructur": 14, "cedar": 14, "hello_world": 14, "5000": 14, "techniqu": 15, "distinguish": 15, "contact": [15, 17], "simplest": 15, "enclos": [15, 17], "angl": [15, 17], "bracket": [15, 16, 17], "unambigu": 15, "123": [15, 18], "declar": [15, 17], "convert": [15, 17, 18], "decim": [15, 17], "greedi": [15, 17], "exp": 15, "element": 15, "opposit": 15, "list_filt": 15, "comma": 15, "delimit": 15, "regexp": [15, 17], "to_python": 15, "to_url": 15, "add_filt": 15, "follow_us": 15, "eventu": [15, 17], "flexibl": [15, 16, 17], "complex": 15, "setup_rout": 15, "form_new": 15, "form_edit": 15, "stand": 16, "alon": [16, 17], "tpl": [16, 17, 18], "sake": [16, 17, 18], "simplic": [16, 17], "hide": 16, "awar": 16, "difficult": 16, "readabl": [16, 18], "bytecod": 16, "untrust": 16, "harm": 16, "curli": [16, 18], "represent": 16, "titl": [16, 17], "stranger": [16, 17], "xss": [16, 17], "attack": [16, 17], "exclam": 16, "lt": 16, "gt": 16, "emb": 16, "surround": [16, 18], "bob": [16, 17], "indent": [16, 17], "statement": [16, 18], "align": 16, "markup": [16, 18], "greatli": 16, "ul": 16, "basket": 16, "li": 16, "recogn": 16, "appear": [16, 17], "mid": 16, "begin": [16, 17], "liter": 16, "span": 16, "awai": [16, 17, 18], "dangl": 16, "div": 16, "compact": 16, "newlin": 16, "preload": 16, "bunch": 16, "rememb": [16, 18], "program": [16, 18], "prior": [16, 18], "sytnax": 16, "sub_templ": 16, "sub": 16, "foother": 16, "inherit": 16, "nameerror": 16, "noth": [16, 17], "vanilla": 16, "lack": 16, "quickli": 16, "annoi": 16, "situat": [16, 17], "h1": [16, 17], "By": [16, 18], "escape_func": 16, "html_escap": 16, "noescap": 16, "topic": 17, "alik": 17, "wget": 17, "snapshot": 17, "stick": 17, "debian": 17, "ubuntu": 17, "Or": [17, 18], "pypa": 17, "piec": [17, 18], "henc": 17, "painless": 17, "orient": 17, "approach": 17, "bore": 17, "demonstr": [17, 18], "oppos": 17, "alic": 17, "mr": 17, "nice": [17, 18], "meaning": 17, "eas": 17, "pagenam": 17, "learning_python": 17, "show_wiki_pag": 17, "user_api": 17, "isalpha": 17, "verb": 17, "commonli": 17, "submiss": 17, "usernam": 17, "do_login": 17, "check_login": 17, "correct": 17, "displai": 17, "credenti": 17, "enter": 17, "ident": 17, "fall": 17, "cut": 17, "prioriti": 17, "sum": 17, "server_stat": 17, "subdirectori": 17, "care": 17, "fairli": [17, 18], "error404": 17, "pure": 17, "transmit": 17, "char": [17, 18], "thereof": 17, "format": [17, 18], "produc": 17, "codec": 17, "grow": 17, "file_wrapp": 17, "sendfil": 17, "signific": 17, "iso": 17, "get_iso": 17, "8859": 17, "15": 17, "latin9": 17, "get_latin": 17, "known": [17, 18], "unchang": 17, "mime": [17, 18], "403": [17, 18], "304": 17, "send_imag": 17, "mimetyp": [17, 18], "send_stat": 17, "dialog": 17, "interrupt": 17, "scenario": 17, "name2": 17, "ahead": 17, "hello_again": 17, "welcom": 17, "ye": 17, "meet": 17, "lifetim": 17, "gotcha": 17, "kb": 17, "wors": 17, "steal": 17, "vulner": 17, "virus": 17, "thu": [17, 18], "confidenti": 17, "restricted_area": 17, "exce": 17, "guest": 17, "rich": 17, "unicodeerror": 17, "do_someth": 17, "citi": 17, "xc3": 17, "xb6ttingen": 17, "wire": 17, "somehow": [17, 18], "g\u00e3": 17, "ttingen": 17, "provision": 17, "stateless": 17, "count": 17, "agent": 17, "forum": 17, "display_forum": 17, "forum_id": 17, "typic": 17, "insecur": 17, "doubt": 17, "tabl": 17, "decent": 17, "overview": 17, "enctyp": 17, "categori": 17, "do_upload": 17, "splitext": 17, "jpg": 17, "jpeg": 17, "save_path": 17, "get_save_path_for_categori": 17, "highli": 17, "unless": 17, "huge": 17, "unbuff": 17, "my_ip": 17, "show_ip": 17, "hello_templ": 17, "folder": 17, "thin": 17, "layer": 17, "worri": 17, "modif": 17, "plai": 17, "portabl": 17, "across": 17, "chanc": 17, "been": 17, "manifold": 17, "fresh": 17, "bottle_sqlit": 17, "post_id": 17, "show_post": 17, "contact_pag": 17, "popul": 17, "bypass": 17, "smart": 17, "left": 17, "delai": 17, "sqlite_plugin": 17, "neat": 17, "overus": 17, "flush": 17, "handi": 17, "INTO": [17, 18], "test1": 17, "dbfile1": 17, "dbfile2": 17, "test2": 17, "open_db": 17, "touch": 17, "elif": 17, "fiction": 17, "sane": 17, "overridden": 17, "tip": 17, "togeth": 17, "isol": 17, "optimis": 17, "misconfigur": 17, "child": 17, "twice": 17, "bottle_child": 17, "deactiv": 17, "oper": [17, 18], "signal": 17, "sigint": 17, "keyboardinterrupt": 17, "sigterm": 17, "kill": 17, "claus": 17, "definit": 17, "under": 17, "referenc": 17, "stage": 17, "success": [17, 18], "compris": 17, "progess": 18, "noisefloor": 18, "brief": 18, "necessari": 18, "knowledg": 18, "fair": 18, "furthermor": 18, "databs": 18, "focu": 18, "necessarili": 18, "max": 18, "mod_wsgi": 18, "insid": 18, "necess": 18, "maco": 18, "con": 18, "primari": 18, "null": 18, "bool": 18, "variou": 18, "editor": 18, "highlight": 18, "todo_list": 18, "conn": 18, "cursor": 18, "fetchal": 18, "did": 18, "my_todo_list": 18, "littl": 18, "mistak": 18, "congratul": 18, "excit": 18, "nicer": 18, "mayb": 18, "stacktrac": 18, "suppos": 18, "mainli": 18, "bother": 18, "bring": 18, "seen": 18, "make_t": 18, "border": 18, "tr": 18, "col": 18, "td": 18, "cell": 18, "brace": 18, "spice": 18, "review": 18, "new_item": 18, "new_id": 18, "lastrowid": 18, "gain": 18, "new_task": 18, "maxlength": 18, "myrout": 18, "edit_item": 18, "cur_data": 18, "edit_task": 18, "br": 18, "sens": 18, "those": 18, "sai": 18, "item1": 18, "obviou": 18, "said": 18, "show_item": 18, "artifici": 18, "construct": 18, "nevertheless": 18, "item_": 18, "exchang": 18, "show_json": 18, "json1": 18, "mistake403": 18, "mistake404": 18, "summari": 18, "traffic": 18, "suitabl": 18, "adress": 18, "portnumb": 18, "45": 18, "67": 18, "89": 18, "board": 18, "pasteserv": 18, "flupserv": 18, "cherrypyserv": 18, "fapwsserv": 18, "scale": 18, "mypag": 18, "imper": 18, "sy": 18, "wrote": 18, "saw": 18, "shade": 18}, "objects": {"": [[17, 0, 0, "-", "bottle"]], "bottle": [[0, 1, 1, "", "AppStack"], [0, 1, 1, "", "BaseRequest"], [0, 1, 1, "", "BaseResponse"], [0, 1, 1, "", "BaseTemplate"], [0, 1, 1, "", "Bottle"], [0, 5, 1, "", "BottleException"], [4, 1, 1, "", "ConfigDict"], [0, 1, 1, "", "FileUpload"], [0, 1, 1, "", "FormsDict"], [0, 5, 1, "", "HTTPError"], [0, 5, 1, "", "HTTPResponse"], [0, 6, 1, "", "HTTP_CODES"], [0, 1, 1, "", "HeaderDict"], [0, 1, 1, "", "LocalRequest"], [0, 1, 1, "", "LocalResponse"], [0, 1, 1, "", "MultiDict"], [10, 1, 1, "", "Plugin"], [0, 3, 1, "", "Request"], [0, 1, 1, "", "ResourceManager"], [0, 3, 1, "", "Response"], [0, 1, 1, "", "Route"], [16, 1, 1, "", "SimpleTemplate"], [0, 1, 1, "", "WSGIHeaderDict"], [0, 7, 1, "", "app"], [0, 7, 1, "", "cookie_decode"], [0, 7, 1, "", "cookie_encode"], [0, 7, 1, "", "cookie_is_encoded"], [0, 7, 1, "", "debug"], [0, 7, 1, "", "default_app"], [0, 7, 1, "", "delete"], [0, 7, 1, "", "error"], [0, 7, 1, "", "get"], [0, 7, 1, "", "load"], [0, 7, 1, "", "load_app"], [0, 7, 1, "", "parse_auth"], [0, 7, 1, "", "parse_date"], [0, 7, 1, "", "path_shift"], [0, 7, 1, "", "post"], [0, 7, 1, "", "put"], [0, 6, 1, "id0", "request"], [0, 6, 1, "", "response"], [0, 7, 1, "", "route"], [0, 7, 1, "", "run"], [0, 7, 1, "", "template"], [0, 7, 1, "", "view"], [0, 7, 1, "", "yieldroutes"]], "bottle.AppStack": [[0, 2, 1, "", "pop"], [0, 2, 1, "", "push"]], "bottle.BaseRequest": [[0, 3, 1, "", "GET"], [0, 3, 1, "", "MEMFILE_MAX"], [0, 3, 1, "", "POST"], [0, 3, 1, "", "app"], [0, 4, 1, "", "auth"], [0, 4, 1, "", "body"], [0, 4, 1, "", "chunked"], [0, 4, 1, "", "content_length"], [0, 4, 1, "", "content_type"], [0, 3, 1, "", "cookies"], [0, 2, 1, "", "copy"], [0, 3, 1, "", "environ"], [0, 3, 1, "", "files"], [0, 3, 1, "", "forms"], [0, 4, 1, "", "fullpath"], [0, 2, 1, "", "get_cookie"], [0, 2, 1, "", "get_header"], [0, 3, 1, "", "headers"], [0, 4, 1, "", "is_ajax"], [0, 4, 1, "", "is_xhr"], [0, 3, 1, "", "json"], [0, 4, 1, "", "method"], [0, 3, 1, "", "params"], [0, 4, 1, "", "path"], [0, 2, 1, "", "path_shift"], [0, 3, 1, "", "query"], [0, 4, 1, "", "query_string"], [0, 4, 1, "", "remote_addr"], [0, 4, 1, "", "remote_route"], [0, 3, 1, "", "route"], [0, 4, 1, "", "script_name"], [0, 4, 1, "", "url"], [0, 3, 1, "", "url_args"], [0, 3, 1, "", "urlparts"]], "bottle.BaseResponse": [[0, 2, 1, "", "add_header"], [0, 4, 1, "", "charset"], [0, 3, 1, "", "content_length"], [0, 3, 1, "", "content_type"], [0, 2, 1, "", "copy"], [0, 2, 1, "", "delete_cookie"], [0, 3, 1, "", "expires"], [0, 2, 1, "", "get_header"], [0, 4, 1, "", "headerlist"], [0, 4, 1, "", "headers"], [0, 2, 1, "", "iter_headers"], [0, 2, 1, "", "set_cookie"], [0, 2, 1, "", "set_header"], [0, 4, 1, "", "status"], [0, 4, 1, "", "status_code"], [0, 4, 1, "", "status_line"]], "bottle.BaseTemplate": [[0, 2, 1, "", "__init__"], [0, 2, 1, "", "global_config"], [0, 2, 1, "", "prepare"], [0, 2, 1, "", "render"], [0, 2, 1, "", "search"]], "bottle.Bottle": [[0, 2, 1, "", "add_hook"], [0, 2, 1, "", "add_route"], [0, 3, 1, "", "catchall"], [0, 2, 1, "", "close"], [0, 3, 1, "", "config"], [0, 2, 1, "", "delete"], [0, 2, 1, "", "error"], [0, 2, 1, "", "get"], [0, 2, 1, "", "get_url"], [0, 2, 1, "", "hook"], [0, 2, 1, "", "install"], [0, 2, 1, "", "match"], [0, 2, 1, "", "merge"], [0, 2, 1, "", "mount"], [0, 2, 1, "", "post"], [0, 2, 1, "", "put"], [0, 2, 1, "", "remove_hook"], [0, 2, 1, "", "reset"], [0, 3, 1, "", "resources"], [0, 2, 1, "", "route"], [0, 2, 1, "", "run"], [0, 2, 1, "", "trigger_hook"], [0, 2, 1, "", "uninstall"], [0, 2, 1, "", "wsgi"]], "bottle.ConfigDict": [[4, 1, 1, "", "Namespace"], [4, 2, 1, "", "clear"], [4, 2, 1, "", "load_config"], [4, 2, 1, "", "load_dict"], [4, 2, 1, "", "meta_get"], [4, 2, 1, "", "meta_list"], [4, 2, 1, "", "meta_set"], [4, 2, 1, "", "setdefault"], [4, 2, 1, "", "update"]], "bottle.ConfigDict.Namespace": [[4, 2, 1, "", "keys"]], "bottle.FileUpload": [[0, 3, 1, "", "content_length"], [0, 3, 1, "", "content_type"], [0, 3, 1, "", "file"], [0, 3, 1, "", "filename"], [0, 2, 1, "", "get_header"], [0, 3, 1, "", "headers"], [0, 3, 1, "", "name"], [0, 3, 1, "", "raw_filename"], [0, 2, 1, "", "save"]], "bottle.FormsDict": [[0, 2, 1, "", "decode"], [0, 2, 1, "", "getunicode"], [0, 3, 1, "", "input_encoding"], [0, 3, 1, "", "recode_unicode"]], "bottle.HeaderDict": [[0, 2, 1, "", "append"], [0, 2, 1, "", "get"], [0, 2, 1, "", "getall"], [0, 2, 1, "", "replace"]], "bottle.LocalRequest": [[0, 2, 1, "", "bind"], [0, 3, 1, "", "environ"]], "bottle.LocalResponse": [[0, 2, 1, "", "bind"], [0, 4, 1, "", "body"]], "bottle.MultiDict": [[0, 2, 1, "", "append"], [0, 2, 1, "", "get"], [0, 2, 1, "", "getall"], [0, 2, 1, "", "getlist"], [0, 2, 1, "", "getone"], [0, 2, 1, "", "items"], [0, 2, 1, "", "iteritems"], [0, 2, 1, "", "iterkeys"], [0, 2, 1, "", "itervalues"], [0, 2, 1, "", "keys"], [0, 2, 1, "", "replace"], [0, 2, 1, "", "values"]], "bottle.Plugin": [[10, 2, 1, "", "__call__"], [10, 3, 1, "", "api"], [10, 2, 1, "", "apply"], [10, 2, 1, "", "close"], [10, 3, 1, "", "name"], [10, 2, 1, "", "setup"]], "bottle.ResourceManager": [[0, 2, 1, "", "add_path"], [0, 3, 1, "", "cache"], [0, 2, 1, "", "lookup"], [0, 2, 1, "", "open"], [0, 3, 1, "", "path"]], "bottle.Route": [[0, 2, 1, "", "all_plugins"], [0, 3, 1, "", "app"], [0, 3, 1, "", "call"], [0, 3, 1, "", "callback"], [0, 3, 1, "", "config"], [0, 2, 1, "", "get_callback_args"], [0, 2, 1, "", "get_config"], [0, 2, 1, "", "get_undecorated_callback"], [0, 3, 1, "", "method"], [0, 3, 1, "", "name"], [0, 3, 1, "", "plugins"], [0, 2, 1, "", "prepare"], [0, 2, 1, "", "reset"], [0, 3, 1, "", "rule"], [0, 3, 1, "", "skiplist"]], "bottle.SimpleTemplate": [[16, 2, 1, "", "prepare"], [16, 2, 1, "", "render"]], "bottle.WSGIHeaderDict": [[0, 3, 1, "", "cgikeys"], [0, 2, 1, "", "keys"], [0, 2, 1, "", "raw"]], "stpl": [[16, 7, 1, "", "defined"], [16, 7, 1, "", "get"], [16, 7, 1, "", "include"], [16, 7, 1, "", "rebase"], [16, 7, 1, "", "setdefault"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:property", "5": "py:exception", "6": "py:data", "7": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "property", "Python property"], "5": ["py", "exception", "Python exception"], "6": ["py", "data", "Python data"], "7": ["py", "function", "Python function"]}, "titleterms": {"api": [0, 4, 10, 16], "refer": 0, "modul": 0, "content": [0, 17, 18], "rout": [0, 8, 10, 15, 17], "wsgi": [0, 1, 14, 17], "http": [0, 17], "util": 0, "data": [0, 4, 17], "structur": [0, 7], "except": 0, "The": [0, 1, 10, 17], "bottl": [0, 8, 9, 12, 13, 14, 18], "class": 0, "request": [0, 14, 15, 17], "object": [0, 10, 17], "respons": [0, 17], "templat": [0, 8, 16, 17], "primer": 1, "asynchron": 1, "applic": [1, 8, 14, 17, 18], "limit": 1, "synchron": 1, "greenlet": 1, "rescu": 1, "event": 1, "callback": 1, "final": [1, 18], "websocket": 1, "releas": [2, 7], "note": [2, 7], "changelog": 2, "0": 2, "12": 2, "11": 2, "10": 2, "9": 2, "8": 2, "contributor": 2, "command": [3, 17], "line": [3, 17], "interfac": [3, 17], "configur": [4, 12, 13, 15], "draft": 4, "basic": [4, 10], "name": 4, "convent": 4, "load": [4, 6], "from": 4, "file": [4, 17], "nest": 4, "dict": 4, "listen": 4, "chang": [4, 10], "filter": [4, 15], "other": [4, 14], "meta": 4, "document": [4, 7], "contact": 5, "deploy": [6, 17], "server": [6, 18], "option": 6, "switch": 6, "backend": 6, "apach": 6, "mod_wsgi": [6, 8], "googl": 6, "appengin": 6, "balanc": 6, "manual": 6, "setup": [6, 18], "good": 6, "old": 6, "cgi": 6, "develop": [7, 9, 10, 17], "get": 7, "involv": 7, "sourc": 7, "updat": 7, "repositori": 7, "submit": 7, "patch": 7, "build": 7, "git": 7, "workflow": 7, "exampl": [7, 10, 18], "frequent": 8, "ask": 8, "question": 8, "about": 8, "i": 8, "suitabl": 8, "complex": 8, "common": 8, "problem": 8, "pitfal": 8, "Not": 8, "found": 8, "mod_python": 8, "dynam": [8, 17], "slash": [8, 14], "revers": 8, "proxi": 8, "python": [9, 16], "web": [9, 18], "framework": 9, "user": 9, "": 9, "guid": [9, 10], "knowledg": 9, "base": [9, 18], "contribut": 9, "licens": 9, "plugin": [10, 11, 14, 17], "how": 10, "work": 10, "context": 10, "runtim": 10, "optim": 10, "sqliteplugin": 10, "list": [11, 18], "avail": 11, "sqlite": 12, "instal": [12, 13, 17], "usag": [12, 13], "werkzeug": 13, "us": [13, 14, 18], "debugg": 13, "recip": 14, "keep": 14, "track": 14, "session": 14, "debug": [14, 17], "style": 14, "middlewar": 14, "unit": 14, "test": 14, "function": [14, 16], "embed": [14, 16], "app": 14, "ignor": 14, "trail": 14, "aliv": 14, "gzip": 14, "compress": 14, "hook": 14, "heroku": 14, "rule": 15, "syntax": [15, 16], "wildcard": 15, "legaci": 15, "explicit": 15, "simpletempl": 16, "engin": 16, "inlin": 16, "express": 16, "code": 16, "whitespac": 16, "control": 16, "tutori": [17, 18], "quickstart": 17, "hello": 17, "world": 17, "default": 17, "method": 17, "static": 17, "error": 17, "page": 17, "gener": 17, "redirect": 17, "cooki": 17, "introduc": 17, "formsdict": 17, "header": 17, "queri": 17, "variabl": 17, "html": 17, "form": 17, "handl": 17, "upload": 17, "json": 17, "raw": 17, "bodi": 17, "environ": 17, "wide": 17, "specif": 17, "blacklist": 17, "sub": 17, "mode": 17, "auto": 17, "reload": 17, "glossari": 17, "todo": 18, "tabl": 18, "goal": 18, "befor": 18, "we": 18, "start": 18, "word": 18, "complet": 18}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"API Reference": [[0, "module-bottle"]], "Module Contents": [[0, "module-contents"]], "Routing": [[0, "routing"]], "WSGI and HTTP Utilities": [[0, "wsgi-and-http-utilities"]], "Data Structures": [[0, "data-structures"]], "Exceptions": [[0, "exceptions"]], "The Bottle Class": [[0, "the-bottle-class"]], "The Request Object": [[0, "the-request-object"]], "The Response Object": [[0, "the-response-object"], [17, "the-response-object"]], "Templates": [[0, "templates"], [17, "templates"]], "Primer to Asynchronous Applications": [[1, "primer-to-asynchronous-applications"]], "The Limits of Synchronous WSGI": [[1, "the-limits-of-synchronous-wsgi"]], "Greenlets to the rescue": [[1, "greenlets-to-the-rescue"]], "Event Callbacks": [[1, "event-callbacks"]], "Finally: WebSockets": [[1, "finally-websockets"]], "Release Notes and Changelog": [[2, "release-notes-and-changelog"]], "Release 0.12": [[2, "release-0-12"]], "Release 0.11": [[2, "release-0-11"]], "Release 0.10": [[2, "release-0-10"]], "Release 0.9": [[2, "release-0-9"]], "Release 0.8": [[2, "release-0-8"]], "Contributors": [[2, "contributors"]], "Command Line Interface": [[3, "command-line-interface"], [17, "command-line-interface"]], "Configuration (DRAFT)": [[4, "configuration-draft"]], "Configuration Basics": [[4, "configuration-basics"]], "Naming Convention": [[4, "naming-convention"]], "Loading Configuration from a File": [[4, "loading-configuration-from-a-file"]], "Loading Configuration from a nested dict": [[4, "loading-configuration-from-a-nested-dict"]], "Listening to configuration changes": [[4, "listening-to-configuration-changes"]], "Filters and other Meta Data": [[4, "filters-and-other-meta-data"]], "API Documentation": [[4, "api-documentation"]], "Contact": [[5, "contact"]], "Deployment": [[6, "deployment"], [17, "deployment"]], "Server Options": [[6, "server-options"]], "Switching the Server Backend": [[6, "switching-the-server-backend"]], "Apache mod_wsgi": [[6, "apache-mod-wsgi"]], "Google AppEngine": [[6, "google-appengine"]], "Load Balancer (Manual Setup)": [[6, "load-balancer-manual-setup"]], "Good old CGI": [[6, "good-old-cgi"]], "Developer Notes": [[7, "developer-notes"]], "Get involved": [[7, "get-involved"]], "Get the Sources": [[7, "get-the-sources"]], "Releases and Updates": [[7, "releases-and-updates"]], "Repository Structure": [[7, "repository-structure"]], "Submitting Patches": [[7, "submitting-patches"]], "Building the Documentation": [[7, "building-the-documentation"]], "GIT Workflow Examples": [[7, "git-workflow-examples"]], "Frequently Asked Questions": [[8, "frequently-asked-questions"]], "About Bottle": [[8, "about-bottle"]], "Is bottle suitable for complex applications?": [[8, "is-bottle-suitable-for-complex-applications"]], "Common Problems and Pitfalls": [[8, "common-problems-and-pitfalls"]], "\u201cTemplate Not Found\u201d in mod_wsgi/mod_python": [[8, "template-not-found-in-mod-wsgi-mod-python"]], "Dynamic Routes and Slashes": [[8, "dynamic-routes-and-slashes"]], "Problems with reverse proxies": [[8, "problems-with-reverse-proxies"]], "Bottle: Python Web Framework": [[9, "bottle-python-web-framework"]], "User\u2019s Guide": [[9, "user-s-guide"]], "Knowledge Base": [[9, "knowledge-base"]], "Development and Contribution": [[9, "development-and-contribution"]], "License": [[9, "license"]], "Plugin Development Guide": [[10, "plugin-development-guide"]], "How Plugins Work: The Basics": [[10, "how-plugins-work-the-basics"]], "Plugin API": [[10, "plugin-api"]], "Plugin API changes": [[10, "plugin-api-changes"]], "The Route Context": [[10, "the-route-context"]], "Changing the Route object": [[10, "changing-the-route-object"]], "Runtime optimizations": [[10, "runtime-optimizations"]], "Plugin Example: SQLitePlugin": [[10, "plugin-example-sqliteplugin"]], "List of available Plugins": [[11, "list-of-available-plugins"]], "Bottle-SQLite": [[12, "bottle-sqlite"]], "Installation": [[12, "installation"], [13, "installation"], [17, "installation"]], "Usage": [[12, "usage"], [13, "usage"]], "Configuration": [[12, "configuration"], [13, "configuration"]], "Bottle-Werkzeug": [[13, "bottle-werkzeug"]], "Using the Debugger": [[13, "using-the-debugger"]], "Recipes": [[14, "recipes"]], "Keeping track of Sessions": [[14, "keeping-track-of-sessions"]], "Debugging with Style: Debugging Middleware": [[14, "debugging-with-style-debugging-middleware"]], "Unit-Testing Bottle Applications": [[14, "unit-testing-bottle-applications"]], "Functional Testing Bottle Applications": [[14, "functional-testing-bottle-applications"]], "Embedding other WSGI Apps": [[14, "embedding-other-wsgi-apps"]], "Ignore trailing slashes": [[14, "ignore-trailing-slashes"]], "Keep-alive requests": [[14, "keep-alive-requests"]], "Gzip Compression in Bottle": [[14, "gzip-compression-in-bottle"]], "Using the hooks plugin": [[14, "using-the-hooks-plugin"]], "Using Bottle with Heroku": [[14, "using-bottle-with-heroku"]], "Request Routing": [[15, "request-routing"], [17, "request-routing"]], "Rule Syntax": [[15, "rule-syntax"]], "Wildcard Filters": [[15, "wildcard-filters"]], "Legacy Syntax": [[15, "legacy-syntax"]], "Explicit routing configuration": [[15, "explicit-routing-configuration"]], "SimpleTemplate Engine": [[16, "simpletemplate-engine"]], "SimpleTemplate Syntax": [[16, "simpletemplate-syntax"]], "Inline Expressions": [[16, "inline-expressions"]], "Embedded python code": [[16, "embedded-python-code"]], "Whitespace Control": [[16, "whitespace-control"]], "Template Functions": [[16, "template-functions"]], "SimpleTemplate API": [[16, "simpletemplate-api"]], "Tutorial": [[17, "tutorial"]], "Quickstart: \u201cHello World\u201d": [[17, "quickstart-hello-world"]], "The Default Application": [[17, "the-default-application"]], "Dynamic Routes": [[17, "dynamic-routes"]], "HTTP Request Methods": [[17, "http-request-methods"]], "Routing Static Files": [[17, "routing-static-files"]], "Error Pages": [[17, "error-pages"]], "Generating content": [[17, "generating-content"]], "Static Files": [[17, "static-files"]], "HTTP Errors and Redirects": [[17, "http-errors-and-redirects"]], "Cookies": [[17, "cookies"], [17, "id3"]], "Request Data": [[17, "request-data"]], "Introducing FormsDict": [[17, "introducing-formsdict"]], "HTTP Headers": [[17, "http-headers"]], "Query Variables": [[17, "query-variables"]], "HTML
Handling": [[17, "html-form-handling"]], "File uploads": [[17, "file-uploads"]], "JSON Content": [[17, "json-content"]], "The raw request body": [[17, "the-raw-request-body"]], "WSGI Environment": [[17, "wsgi-environment"]], "Plugins": [[17, "plugins"]], "Application-wide Installation": [[17, "application-wide-installation"]], "Route-specific Installation": [[17, "route-specific-installation"]], "Blacklisting Plugins": [[17, "blacklisting-plugins"]], "Plugins and Sub-Applications": [[17, "plugins-and-sub-applications"]], "Development": [[17, "development"]], "Default Application": [[17, "default-application"]], "Debug Mode": [[17, "debug-mode"]], "Auto Reloading": [[17, "auto-reloading"]], "Glossary": [[17, "glossary"]], "Tutorial: Todo-List Application": [[18, "tutorial-todo-list-application"]], "Table of Contents": [[18, "table-of-contents"]], "Goals": [[18, "goals"]], "Before We Start\u2026": [[18, "before-we-start"]], "Using Bottle for a Web-Based ToDo List": [[18, "using-bottle-for-a-web-based-todo-list"]], "Server Setup": [[18, "server-setup"]], "Final Words": [[18, "final-words"]], "Complete Example Listing": [[18, "complete-example-listing"]]}, "indexentries": {"appstack (class in bottle)": [[0, "bottle.AppStack"]], "baserequest (class in bottle)": [[0, "bottle.BaseRequest"]], "baseresponse (class in bottle)": [[0, "bottle.BaseResponse"]], "basetemplate (class in bottle)": [[0, "bottle.BaseTemplate"]], "bottle (class in bottle)": [[0, "bottle.Bottle"]], "bottleexception": [[0, "bottle.BottleException"]], "fileupload (class in bottle)": [[0, "bottle.FileUpload"]], "formsdict (class in bottle)": [[0, "bottle.FormsDict"]], "get (baserequest attribute)": [[0, "bottle.BaseRequest.GET"]], "httperror": [[0, "bottle.HTTPError"]], "httpresponse": [[0, "bottle.HTTPResponse"]], "http_codes (in module bottle)": [[0, "bottle.HTTP_CODES"]], "headerdict (class in bottle)": [[0, "bottle.HeaderDict"]], "localrequest (class in bottle)": [[0, "bottle.LocalRequest"]], "localresponse (class in bottle)": [[0, "bottle.LocalResponse"]], "memfile_max (baserequest attribute)": [[0, "bottle.BaseRequest.MEMFILE_MAX"]], "multidict (class in bottle)": [[0, "bottle.MultiDict"]], "post (baserequest attribute)": [[0, "bottle.BaseRequest.POST"]], "request (in module bottle)": [[0, "bottle.Request"], [0, "bottle.request"], [0, "id0"]], "resourcemanager (class in bottle)": [[0, "bottle.ResourceManager"]], "response (in module bottle)": [[0, "bottle.Response"], [0, "bottle.response"]], "route (class in bottle)": [[0, "bottle.Route"]], "wsgiheaderdict (class in bottle)": [[0, "bottle.WSGIHeaderDict"]], "__init__() (basetemplate method)": [[0, "bottle.BaseTemplate.__init__"]], "add_header() (baseresponse method)": [[0, "bottle.BaseResponse.add_header"]], "add_hook() (bottle method)": [[0, "bottle.Bottle.add_hook"]], "add_path() (resourcemanager method)": [[0, "bottle.ResourceManager.add_path"]], "add_route() (bottle method)": [[0, "bottle.Bottle.add_route"]], "all_plugins() (route method)": [[0, "bottle.Route.all_plugins"]], "app (baserequest attribute)": [[0, "bottle.BaseRequest.app"]], "app (route attribute)": [[0, "bottle.Route.app"]], "app() (in module bottle)": [[0, "bottle.app"]], "append() (headerdict method)": [[0, "bottle.HeaderDict.append"]], "append() (multidict method)": [[0, "bottle.MultiDict.append"]], "auth (baserequest property)": [[0, "bottle.BaseRequest.auth"]], "bind() (localrequest method)": [[0, "bottle.LocalRequest.bind"]], "bind() (localresponse method)": [[0, "bottle.LocalResponse.bind"]], "body (baserequest property)": [[0, "bottle.BaseRequest.body"]], "body (localresponse property)": [[0, "bottle.LocalResponse.body"]], "bottle": [[0, "module-bottle"], [8, "module-bottle"], [10, "module-bottle"], [11, "module-bottle"], [14, "module-bottle"], [17, "module-bottle"]], "cache (resourcemanager attribute)": [[0, "bottle.ResourceManager.cache"]], "call (route attribute)": [[0, "bottle.Route.call"]], "callback (route attribute)": [[0, "bottle.Route.callback"]], "catchall (bottle attribute)": [[0, "bottle.Bottle.catchall"]], "cgikeys (wsgiheaderdict attribute)": [[0, "bottle.WSGIHeaderDict.cgikeys"]], "charset (baseresponse property)": [[0, "bottle.BaseResponse.charset"]], "chunked (baserequest property)": [[0, "bottle.BaseRequest.chunked"]], "close() (bottle method)": [[0, "bottle.Bottle.close"]], "config (bottle attribute)": [[0, "bottle.Bottle.config"]], "config (route attribute)": [[0, "bottle.Route.config"]], "content_length (baserequest property)": [[0, "bottle.BaseRequest.content_length"]], "content_length (baseresponse attribute)": [[0, "bottle.BaseResponse.content_length"]], "content_length (fileupload attribute)": [[0, "bottle.FileUpload.content_length"]], "content_type (baserequest property)": [[0, "bottle.BaseRequest.content_type"]], "content_type (baseresponse attribute)": [[0, "bottle.BaseResponse.content_type"]], "content_type (fileupload attribute)": [[0, "bottle.FileUpload.content_type"]], "cookie_decode() (in module bottle)": [[0, "bottle.cookie_decode"]], "cookie_encode() (in module bottle)": [[0, "bottle.cookie_encode"]], "cookie_is_encoded() (in module bottle)": [[0, "bottle.cookie_is_encoded"]], "cookies (baserequest attribute)": [[0, "bottle.BaseRequest.cookies"]], "copy() (baserequest method)": [[0, "bottle.BaseRequest.copy"]], "copy() (baseresponse method)": [[0, "bottle.BaseResponse.copy"]], "debug() (in module bottle)": [[0, "bottle.debug"]], "decode() (formsdict method)": [[0, "bottle.FormsDict.decode"]], "default_app() (in module bottle)": [[0, "bottle.default_app"]], "delete() (bottle method)": [[0, "bottle.Bottle.delete"]], "delete() (in module bottle)": [[0, "bottle.delete"]], "delete_cookie() (baseresponse method)": [[0, "bottle.BaseResponse.delete_cookie"]], "environ (baserequest attribute)": [[0, "bottle.BaseRequest.environ"]], "environ (localrequest attribute)": [[0, "bottle.LocalRequest.environ"]], "error() (bottle method)": [[0, "bottle.Bottle.error"]], "error() (in module bottle)": [[0, "bottle.error"]], "expires (baseresponse attribute)": [[0, "bottle.BaseResponse.expires"]], "file (fileupload attribute)": [[0, "bottle.FileUpload.file"]], "filename (fileupload attribute)": [[0, "bottle.FileUpload.filename"]], "files (baserequest attribute)": [[0, "bottle.BaseRequest.files"]], "forms (baserequest attribute)": [[0, "bottle.BaseRequest.forms"]], "fullpath (baserequest property)": [[0, "bottle.BaseRequest.fullpath"]], "get() (bottle method)": [[0, "bottle.Bottle.get"]], "get() (headerdict method)": [[0, "bottle.HeaderDict.get"]], "get() (multidict method)": [[0, "bottle.MultiDict.get"]], "get() (in module bottle)": [[0, "bottle.get"]], "get_callback_args() (route method)": [[0, "bottle.Route.get_callback_args"]], "get_config() (route method)": [[0, "bottle.Route.get_config"]], "get_cookie() (baserequest method)": [[0, "bottle.BaseRequest.get_cookie"]], "get_header() (baserequest method)": [[0, "bottle.BaseRequest.get_header"]], "get_header() (baseresponse method)": [[0, "bottle.BaseResponse.get_header"]], "get_header() (fileupload method)": [[0, "bottle.FileUpload.get_header"]], "get_undecorated_callback() (route method)": [[0, "bottle.Route.get_undecorated_callback"]], "get_url() (bottle method)": [[0, "bottle.Bottle.get_url"]], "getall() (headerdict method)": [[0, "bottle.HeaderDict.getall"]], "getall() (multidict method)": [[0, "bottle.MultiDict.getall"]], "getlist() (multidict method)": [[0, "bottle.MultiDict.getlist"]], "getone() (multidict method)": [[0, "bottle.MultiDict.getone"]], "getunicode() (formsdict method)": [[0, "bottle.FormsDict.getunicode"]], "global_config() (basetemplate class method)": [[0, "bottle.BaseTemplate.global_config"]], "headerlist (baseresponse property)": [[0, "bottle.BaseResponse.headerlist"]], "headers (baserequest attribute)": [[0, "bottle.BaseRequest.headers"]], "headers (baseresponse property)": [[0, "bottle.BaseResponse.headers"]], "headers (fileupload attribute)": [[0, "bottle.FileUpload.headers"]], "hook() (bottle method)": [[0, "bottle.Bottle.hook"]], "input_encoding (formsdict attribute)": [[0, "bottle.FormsDict.input_encoding"]], "install() (bottle method)": [[0, "bottle.Bottle.install"]], "is_ajax (baserequest property)": [[0, "bottle.BaseRequest.is_ajax"]], "is_xhr (baserequest property)": [[0, "bottle.BaseRequest.is_xhr"]], "items() (multidict method)": [[0, "bottle.MultiDict.items"]], "iter_headers() (baseresponse method)": [[0, "bottle.BaseResponse.iter_headers"]], "iteritems() (multidict method)": [[0, "bottle.MultiDict.iteritems"]], "iterkeys() (multidict method)": [[0, "bottle.MultiDict.iterkeys"]], "itervalues() (multidict method)": [[0, "bottle.MultiDict.itervalues"]], "json (baserequest attribute)": [[0, "bottle.BaseRequest.json"]], "keys() (multidict method)": [[0, "bottle.MultiDict.keys"]], "keys() (wsgiheaderdict method)": [[0, "bottle.WSGIHeaderDict.keys"]], "load() (in module bottle)": [[0, "bottle.load"]], "load_app() (in module bottle)": [[0, "bottle.load_app"]], "lookup() (resourcemanager method)": [[0, "bottle.ResourceManager.lookup"]], "match() (bottle method)": [[0, "bottle.Bottle.match"]], "merge() (bottle method)": [[0, "bottle.Bottle.merge"]], "method (baserequest property)": [[0, "bottle.BaseRequest.method"]], "method (route attribute)": [[0, "bottle.Route.method"]], "module": [[0, "module-bottle"], [8, "module-bottle"], [10, "module-bottle"], [11, "module-bottle"], [14, "module-bottle"], [17, "module-bottle"]], "mount() (bottle method)": [[0, "bottle.Bottle.mount"]], "name (fileupload attribute)": [[0, "bottle.FileUpload.name"]], "name (route attribute)": [[0, "bottle.Route.name"]], "open() (resourcemanager method)": [[0, "bottle.ResourceManager.open"]], "params (baserequest attribute)": [[0, "bottle.BaseRequest.params"]], "parse_auth() (in module bottle)": [[0, "bottle.parse_auth"]], "parse_date() (in module bottle)": [[0, "bottle.parse_date"]], "path (baserequest property)": [[0, "bottle.BaseRequest.path"]], "path (resourcemanager attribute)": [[0, "bottle.ResourceManager.path"]], "path_shift() (baserequest method)": [[0, "bottle.BaseRequest.path_shift"]], "path_shift() (in module bottle)": [[0, "bottle.path_shift"]], "plugins (route attribute)": [[0, "bottle.Route.plugins"]], "pop() (appstack method)": [[0, "bottle.AppStack.pop"]], "post() (bottle method)": [[0, "bottle.Bottle.post"]], "post() (in module bottle)": [[0, "bottle.post"]], "prepare() (basetemplate method)": [[0, "bottle.BaseTemplate.prepare"]], "prepare() (route method)": [[0, "bottle.Route.prepare"]], "push() (appstack method)": [[0, "bottle.AppStack.push"]], "put() (bottle method)": [[0, "bottle.Bottle.put"]], "put() (in module bottle)": [[0, "bottle.put"]], "query (baserequest attribute)": [[0, "bottle.BaseRequest.query"]], "query_string (baserequest property)": [[0, "bottle.BaseRequest.query_string"]], "raw() (wsgiheaderdict method)": [[0, "bottle.WSGIHeaderDict.raw"]], "raw_filename (fileupload attribute)": [[0, "bottle.FileUpload.raw_filename"]], "recode_unicode (formsdict attribute)": [[0, "bottle.FormsDict.recode_unicode"]], "remote_addr (baserequest property)": [[0, "bottle.BaseRequest.remote_addr"]], "remote_route (baserequest property)": [[0, "bottle.BaseRequest.remote_route"]], "remove_hook() (bottle method)": [[0, "bottle.Bottle.remove_hook"]], "render() (basetemplate method)": [[0, "bottle.BaseTemplate.render"]], "replace() (headerdict method)": [[0, "bottle.HeaderDict.replace"]], "replace() (multidict method)": [[0, "bottle.MultiDict.replace"]], "reset() (bottle method)": [[0, "bottle.Bottle.reset"]], "reset() (route method)": [[0, "bottle.Route.reset"]], "resources (bottle attribute)": [[0, "bottle.Bottle.resources"]], "route (baserequest attribute)": [[0, "bottle.BaseRequest.route"]], "route() (bottle method)": [[0, "bottle.Bottle.route"]], "route() (in module bottle)": [[0, "bottle.route"]], "rule (route attribute)": [[0, "bottle.Route.rule"]], "run() (bottle method)": [[0, "bottle.Bottle.run"]], "run() (in module bottle)": [[0, "bottle.run"]], "save() (fileupload method)": [[0, "bottle.FileUpload.save"]], "script_name (baserequest property)": [[0, "bottle.BaseRequest.script_name"]], "search() (basetemplate class method)": [[0, "bottle.BaseTemplate.search"]], "set_cookie() (baseresponse method)": [[0, "bottle.BaseResponse.set_cookie"]], "set_header() (baseresponse method)": [[0, "bottle.BaseResponse.set_header"]], "skiplist (route attribute)": [[0, "bottle.Route.skiplist"]], "status (baseresponse property)": [[0, "bottle.BaseResponse.status"]], "status_code (baseresponse property)": [[0, "bottle.BaseResponse.status_code"]], "status_line (baseresponse property)": [[0, "bottle.BaseResponse.status_line"]], "template() (in module bottle)": [[0, "bottle.template"]], "trigger_hook() (bottle method)": [[0, "bottle.Bottle.trigger_hook"]], "uninstall() (bottle method)": [[0, "bottle.Bottle.uninstall"]], "url (baserequest property)": [[0, "bottle.BaseRequest.url"]], "url_args (baserequest attribute)": [[0, "bottle.BaseRequest.url_args"]], "urlparts (baserequest attribute)": [[0, "bottle.BaseRequest.urlparts"]], "values() (multidict method)": [[0, "bottle.MultiDict.values"]], "view() (in module bottle)": [[0, "bottle.view"]], "wsgi() (bottle method)": [[0, "bottle.Bottle.wsgi"]], "yieldroutes() (in module bottle)": [[0, "bottle.yieldroutes"]], "configdict (class in bottle)": [[4, "bottle.ConfigDict"]], "configdict.namespace (class in bottle)": [[4, "bottle.ConfigDict.Namespace"]], "clear() (configdict method)": [[4, "bottle.ConfigDict.clear"]], "keys() (configdict.namespace method)": [[4, "bottle.ConfigDict.Namespace.keys"]], "load_config() (configdict method)": [[4, "bottle.ConfigDict.load_config"]], "load_dict() (configdict method)": [[4, "bottle.ConfigDict.load_dict"]], "meta_get() (configdict method)": [[4, "bottle.ConfigDict.meta_get"]], "meta_list() (configdict method)": [[4, "bottle.ConfigDict.meta_list"]], "meta_set() (configdict method)": [[4, "bottle.ConfigDict.meta_set"]], "setdefault() (configdict method)": [[4, "bottle.ConfigDict.setdefault"]], "update() (configdict method)": [[4, "bottle.ConfigDict.update"]], "plugin (class in bottle)": [[10, "bottle.Plugin"]], "__call__() (plugin method)": [[10, "bottle.Plugin.__call__"]], "api (plugin attribute)": [[10, "bottle.Plugin.api"]], "apply() (plugin method)": [[10, "bottle.Plugin.apply"]], "close() (plugin method)": [[10, "bottle.Plugin.close"]], "name (plugin attribute)": [[10, "bottle.Plugin.name"]], "setup() (plugin method)": [[10, "bottle.Plugin.setup"]], "simpletemplate (class in bottle)": [[16, "bottle.SimpleTemplate"]], "defined() (in module stpl)": [[16, "stpl.defined"]], "get() (in module stpl)": [[16, "stpl.get"]], "include() (in module stpl)": [[16, "stpl.include"]], "prepare() (simpletemplate method)": [[16, "bottle.SimpleTemplate.prepare"]], "rebase() (in module stpl)": [[16, "stpl.rebase"]], "render() (simpletemplate method)": [[16, "bottle.SimpleTemplate.render"]], "setdefault() (in module stpl)": [[16, "stpl.setdefault"]], "callback": [[17, "term-callback"]], "decorator": [[17, "term-decorator"]], "environ": [[17, "term-environ"]], "handler function": [[17, "term-handler-function"]], "source directory": [[17, "term-source-directory"]]}})