Search.setIndex({"docnames": ["api", "appcontext", "async-await", "blueprints", "changes", "cli", "config", "contributing", "debugging", "deploying/apache-httpd", "deploying/asgi", "deploying/eventlet", "deploying/gevent", "deploying/gunicorn", "deploying/index", "deploying/mod_wsgi", "deploying/nginx", "deploying/proxy_fix", "deploying/uwsgi", "deploying/waitress", "design", "errorhandling", "extensiondev", "extensions", "index", "installation", "license", "logging", "patterns/appdispatch", "patterns/appfactories", "patterns/caching", "patterns/celery", "patterns/deferredcallbacks", "patterns/favicon", "patterns/fileuploads", "patterns/flashing", "patterns/index", "patterns/javascript", "patterns/jquery", "patterns/lazyloading", "patterns/methodoverrides", "patterns/mongoengine", "patterns/packages", "patterns/requestchecksum", "patterns/singlepageapplications", "patterns/sqlalchemy", "patterns/sqlite3", "patterns/streaming", "patterns/subclassing", "patterns/templateinheritance", "patterns/urlprocessors", "patterns/viewdecorators", "patterns/wtforms", "quickstart", "reqcontext", "security", "server", "shell", "signals", "templating", "testing", "tutorial/blog", "tutorial/database", "tutorial/deploy", "tutorial/factory", "tutorial/index", "tutorial/install", "tutorial/layout", "tutorial/next", "tutorial/static", "tutorial/templates", "tutorial/tests", "tutorial/views", "views"], "filenames": ["api.rst", "appcontext.rst", "async-await.rst", "blueprints.rst", "changes.rst", "cli.rst", "config.rst", "contributing.rst", "debugging.rst", "deploying/apache-httpd.rst", "deploying/asgi.rst", "deploying/eventlet.rst", "deploying/gevent.rst", "deploying/gunicorn.rst", "deploying/index.rst", "deploying/mod_wsgi.rst", "deploying/nginx.rst", "deploying/proxy_fix.rst", "deploying/uwsgi.rst", "deploying/waitress.rst", "design.rst", "errorhandling.rst", "extensiondev.rst", "extensions.rst", "index.rst", "installation.rst", "license.rst", "logging.rst", "patterns/appdispatch.rst", "patterns/appfactories.rst", "patterns/caching.rst", "patterns/celery.rst", "patterns/deferredcallbacks.rst", "patterns/favicon.rst", "patterns/fileuploads.rst", "patterns/flashing.rst", "patterns/index.rst", "patterns/javascript.rst", "patterns/jquery.rst", "patterns/lazyloading.rst", "patterns/methodoverrides.rst", "patterns/mongoengine.rst", "patterns/packages.rst", "patterns/requestchecksum.rst", "patterns/singlepageapplications.rst", "patterns/sqlalchemy.rst", "patterns/sqlite3.rst", "patterns/streaming.rst", "patterns/subclassing.rst", "patterns/templateinheritance.rst", "patterns/urlprocessors.rst", "patterns/viewdecorators.rst", "patterns/wtforms.rst", "quickstart.rst", "reqcontext.rst", "security.rst", "server.rst", "shell.rst", "signals.rst", "templating.rst", "testing.rst", "tutorial/blog.rst", "tutorial/database.rst", "tutorial/deploy.rst", "tutorial/factory.rst", "tutorial/index.rst", "tutorial/install.rst", "tutorial/layout.rst", "tutorial/next.rst", "tutorial/static.rst", "tutorial/templates.rst", "tutorial/tests.rst", "tutorial/views.rst", "views.rst"], "titles": ["API", "The Application Context", "Using async and await", "Modular Applications with Blueprints", "Changes", "Command Line Interface", "Configuration Handling", "How to contribute to Flask", "Debugging Application Errors", "Apache httpd", "ASGI", "eventlet", "gevent", "Gunicorn", "Deploying to Production", "mod_wsgi", "nginx", "Tell Flask it is Behind a Proxy", "uWSGI", "Waitress", "Design Decisions in Flask", "Handling Application Errors", "Flask Extension Development", "Extensions", "Welcome to Flask", "Installation", "License", "Logging", "Application Dispatching", "Application Factories", "Caching", "Celery Background Tasks", "Deferred Request Callbacks", "Adding a favicon", "Uploading Files", "Message Flashing", "Patterns for Flask", "JavaScript, fetch, and JSON", "AJAX with jQuery", "Lazily Loading Views", "Adding HTTP Method Overrides", "MongoDB with MongoEngine", "Large Applications as Packages", "Request Content Checksums", "Single-Page Applications", "SQLAlchemy in Flask", "Using SQLite 3 with Flask", "Streaming Contents", "Subclassing Flask", "Template Inheritance", "Using URL Processors", "View Decorators", "Form Validation with WTForms", "Quickstart", "The Request Context", "Security Considerations", "Development Server", "Working with the Shell", "Signals", "Templates", "Testing Flask Applications", "Blog Blueprint", "Define and Access the Database", "Deploy to Production", "Application Setup", "Tutorial", "Make the Project Installable", "Project Layout", "Keep Developing!", "Static Files", "Templates", "Test Coverage", "Blueprints and Views", "Class-based Views"], "terms": {"thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73], "part": [0, 3, 4, 5, 6, 21, 22, 24, 34, 37, 46, 47, 49, 50, 53, 54, 58, 60, 61, 63, 71], "document": [0, 4, 5, 6, 7, 8, 9, 13, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 31, 33, 34, 36, 42, 45, 49, 53, 54, 55, 59, 60, 68, 69, 70], "cover": [0, 7, 21, 22, 37, 53, 65, 71], "all": [0, 1, 2, 3, 4, 6, 11, 12, 13, 17, 18, 19, 20, 21, 22, 26, 27, 28, 31, 33, 34, 35, 37, 39, 42, 43, 44, 45, 49, 50, 53, 54, 55, 58, 59, 60, 61, 65, 66, 67, 68, 69, 70, 71, 72, 73], "flask": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 14, 15, 16, 19, 21, 23, 26, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 42, 44, 47, 50, 51, 52, 54, 55, 56, 57, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "For": [0, 1, 2, 3, 4, 5, 6, 9, 15, 16, 20, 21, 22, 23, 28, 29, 31, 32, 34, 35, 36, 37, 41, 42, 43, 45, 46, 48, 50, 51, 52, 53, 54, 55, 57, 60, 63, 64, 67, 71, 72, 73], "where": [0, 3, 4, 5, 6, 7, 20, 21, 22, 32, 34, 42, 45, 46, 50, 51, 53, 54, 55, 57, 61, 62, 64, 66, 67, 70, 71, 72, 73], "depend": [0, 3, 4, 6, 7, 9, 11, 12, 13, 15, 16, 19, 20, 21, 22, 24, 27, 28, 37, 42, 53, 54, 55, 57, 59, 63, 66, 67], "extern": [0, 2, 4, 6, 17, 22, 24, 55], "librari": [0, 2, 4, 6, 11, 12, 20, 21, 22, 24, 25, 34, 37, 41, 52, 53, 58, 60, 62, 63, 65, 66, 70, 72], "we": [0, 3, 6, 9, 16, 20, 21, 25, 26, 28, 29, 31, 32, 33, 34, 37, 39, 42, 45, 46, 49, 50, 51, 52, 53, 55, 60, 73], "most": [0, 1, 2, 3, 5, 6, 14, 18, 20, 21, 22, 33, 34, 36, 37, 42, 45, 49, 53, 54, 55, 58, 61, 62, 64, 71], "import": [0, 1, 3, 4, 5, 6, 10, 11, 12, 13, 15, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 31, 32, 33, 34, 35, 37, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 70, 71, 72, 73], "right": [0, 34, 39, 50, 55, 69], "here": [0, 3, 5, 6, 14, 20, 21, 22, 28, 29, 35, 37, 39, 42, 45, 46, 49, 50, 51, 52, 53, 55, 58, 59, 60, 63, 68, 70, 71, 72], "provid": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 16, 17, 18, 20, 21, 22, 24, 25, 26, 28, 30, 35, 37, 39, 46, 47, 50, 51, 53, 54, 56, 58, 59, 60, 63, 64, 65, 71, 73], "link": [0, 3, 4, 7, 14, 18, 22, 26, 33, 37, 49, 55, 61, 69, 70, 71, 72], "canon": [0, 20, 53], "import_nam": [0, 4, 31, 39], "static_url_path": [0, 3, 4, 44], "none": [0, 1, 4, 5, 6, 21, 22, 27, 28, 32, 35, 45, 46, 50, 51, 53, 61, 62, 63, 64, 69, 71, 72], "static_fold": [0, 3, 4, 44], "static": [0, 4, 20, 24, 33, 37, 42, 44, 49, 65, 66, 67, 70], "static_host": [0, 4], "host_match": [0, 4], "fals": [0, 4, 6, 8, 22, 45, 46, 52, 59, 66, 71, 73], "subdomain_match": [0, 4], "template_fold": [0, 3], "instance_path": [0, 4, 6, 64], "instance_relative_config": [0, 6, 64], "root_path": [0, 3, 6, 33], "The": [0, 2, 4, 5, 6, 7, 9, 10, 13, 14, 15, 16, 17, 18, 19, 21, 24, 25, 26, 27, 28, 29, 31, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 55, 56, 57, 58, 60, 62, 63, 65, 66, 67, 69, 71, 73], "implement": [0, 2, 3, 4, 5, 6, 13, 20, 21, 22, 25, 28, 29, 34, 36, 42, 46, 51, 53, 54, 55, 61], "wsgi": [0, 2, 3, 4, 5, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 29, 34, 43, 47, 54, 63], "act": [0, 73], "central": [0, 3, 4, 20, 36], "It": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 25, 29, 31, 32, 33, 34, 35, 37, 39, 45, 46, 47, 49, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 70, 71, 73], "i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 70, 71, 72, 73], "pass": [0, 1, 4, 5, 6, 8, 17, 20, 21, 22, 23, 29, 32, 35, 37, 39, 40, 45, 46, 47, 51, 52, 53, 54, 56, 59, 60, 61, 64, 71, 72, 73], "name": [0, 1, 3, 4, 5, 6, 7, 13, 15, 19, 20, 21, 23, 24, 25, 26, 27, 29, 33, 34, 35, 37, 39, 41, 42, 45, 46, 47, 50, 51, 52, 53, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 70, 71, 72, 73], "modul": [0, 1, 3, 4, 5, 6, 9, 10, 13, 19, 20, 22, 25, 27, 31, 39, 42, 45, 46, 52, 53, 57, 60, 62, 64, 67, 71, 72], "packag": [0, 3, 4, 5, 6, 9, 15, 16, 18, 20, 22, 23, 24, 25, 28, 29, 31, 36, 45, 52, 53, 62, 64, 65, 66, 67, 70, 71], "onc": [0, 3, 4, 5, 6, 11, 12, 22, 28, 31, 50, 59, 60, 62, 65], "creat": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13, 15, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 31, 32, 36, 37, 42, 44, 45, 46, 51, 52, 53, 54, 55, 60, 63, 64, 65, 67, 71, 73], "registri": 0, "rule": [0, 3, 4, 6, 39, 51, 55], "much": [0, 4, 6, 11, 12, 20, 22, 34, 46, 47, 71], "more": [0, 1, 3, 4, 5, 6, 7, 8, 11, 12, 14, 15, 18, 20, 21, 22, 24, 25, 27, 29, 32, 34, 37, 41, 45, 46, 47, 50, 51, 52, 53, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 68, 69, 71, 73], "resolv": [0, 42], "resourc": [0, 1, 4, 7, 20, 21, 22, 24, 37, 50, 53, 55, 57, 60], "from": [0, 1, 2, 3, 4, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 44, 45, 46, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 69, 70, 71, 72, 73], "insid": [0, 4, 5, 6, 20, 28, 35, 42, 44, 59, 61, 64, 70, 71], "folder": [0, 4, 20, 24, 25, 34, 42, 53, 60, 62, 63, 64, 71], "contain": [0, 3, 4, 6, 15, 22, 23, 37, 49, 53, 55, 60, 61, 64, 66, 67, 70, 71, 72], "an": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 14, 15, 18, 20, 21, 22, 23, 24, 27, 28, 29, 30, 32, 33, 36, 37, 39, 40, 41, 42, 44, 45, 46, 47, 49, 50, 51, 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 68, 70, 71, 72, 73], "actual": [0, 3, 4, 6, 7, 11, 12, 13, 17, 18, 20, 21, 29, 30, 31, 34, 39, 42, 51, 53, 54], "python": [0, 3, 4, 5, 7, 8, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 24, 27, 28, 31, 42, 46, 51, 52, 53, 54, 56, 57, 59, 60, 62, 63, 64, 65, 66, 67, 68, 70, 71], "__init__": [0, 3, 4, 6, 21, 22, 28, 39, 40, 42, 43, 45, 53, 61, 62, 64, 67, 71, 72, 73], "py": [0, 3, 4, 5, 6, 7, 11, 12, 15, 18, 22, 25, 29, 39, 42, 45, 53, 56, 60, 61, 62, 63, 64, 66, 67, 71, 72], "file": [0, 4, 9, 15, 16, 18, 20, 21, 22, 24, 26, 27, 29, 33, 36, 37, 39, 42, 43, 44, 46, 55, 60, 61, 63, 64, 65, 66, 67, 70, 71], "standard": [0, 2, 4, 11, 12, 14, 18, 20, 21, 24, 25, 27, 33, 52, 53, 63, 66, 73], "just": [0, 3, 4, 5, 6, 20, 21, 28, 31, 34, 35, 39, 42, 45, 46, 53, 55, 57, 58, 63, 64, 66, 69, 72], "inform": [0, 1, 4, 5, 6, 7, 8, 15, 18, 20, 21, 22, 24, 28, 29, 36, 37, 41, 45, 50, 51, 52, 54, 55, 57, 59, 60, 61, 71, 72], "load": [0, 3, 4, 5, 6, 13, 19, 20, 24, 36, 45, 53, 55, 57, 59, 64, 72], "see": [0, 1, 2, 3, 4, 5, 6, 11, 12, 13, 18, 20, 21, 22, 27, 28, 29, 31, 34, 36, 38, 42, 51, 52, 53, 54, 56, 57, 59, 60, 61, 63, 64, 66, 70, 71, 72, 73], "open_resourc": [0, 3, 4, 20, 46, 62], "usual": [0, 3, 4, 6, 7, 20, 22, 23, 27, 35, 37, 39, 46, 53, 55, 60], "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "instanc": [0, 1, 3, 4, 5, 20, 21, 22, 23, 24, 28, 29, 31, 32, 41, 42, 43, 46, 50, 51, 53, 54, 57, 60, 62, 63, 64, 67, 71, 73], "your": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 25, 27, 28, 29, 30, 31, 33, 34, 37, 39, 41, 42, 44, 45, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "main": [0, 2, 5, 7, 20, 28, 45, 56, 57, 61], "like": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 15, 16, 20, 21, 22, 23, 25, 28, 29, 31, 34, 37, 39, 41, 42, 45, 49, 50, 51, 52, 53, 54, 57, 58, 59, 61, 62, 63, 64, 66, 67, 68, 69, 70, 72], "app": [0, 1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 31, 32, 33, 34, 35, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 71, 72, 73], "__name__": [0, 1, 3, 4, 5, 6, 10, 20, 21, 22, 23, 27, 28, 29, 31, 34, 35, 39, 40, 41, 42, 44, 50, 51, 53, 54, 56, 61, 64, 67, 72, 73], "idea": [0, 3, 20, 22, 28, 29, 30, 34, 37, 42, 46, 50, 51, 57, 59, 68], "give": [0, 4, 5, 20, 21, 33, 35, 52, 53, 59, 61, 63, 65], "what": [0, 3, 4, 6, 7, 9, 13, 15, 16, 17, 18, 19, 21, 22, 24, 25, 30, 32, 34, 39, 42, 53, 55, 56, 57, 58, 59, 60, 61, 63, 65, 66, 68, 72, 73], "belong": [0, 66], "find": [0, 3, 5, 6, 21, 22, 24, 33, 36, 39, 42, 52, 53, 60, 63, 64, 65, 66, 69, 71], "filesystem": [0, 3, 21, 29, 34, 47, 53], "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 34, 35, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "extens": [0, 1, 3, 4, 5, 6, 18, 20, 24, 30, 34, 36, 55, 59, 60, 63, 64, 65, 68, 71, 73], "improv": [0, 2, 4, 6, 21, 24, 36, 50, 55], "debug": [0, 4, 24, 27, 28, 47, 54, 56, 58, 64], "lot": [0, 6, 45, 47, 50, 57, 64, 68, 73], "so": [0, 3, 4, 5, 6, 8, 9, 16, 17, 18, 20, 21, 22, 29, 30, 33, 34, 35, 37, 39, 42, 45, 46, 47, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 64, 66, 68, 69, 70, 71, 72, 73], "": [0, 2, 3, 4, 5, 6, 8, 9, 10, 13, 14, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 29, 30, 31, 33, 34, 37, 39, 40, 42, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 57, 59, 60, 61, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73], "If": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 15, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 31, 33, 34, 35, 37, 41, 42, 45, 46, 47, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 67, 68, 69, 70, 71, 72, 73], "ar": [0, 1, 2, 3, 4, 5, 6, 9, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 34, 35, 36, 37, 39, 41, 42, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 67, 68, 69, 70, 71, 72, 73], "singl": [0, 4, 6, 14, 19, 20, 22, 24, 36, 37, 39, 46, 50, 55, 67, 68, 73], "alwai": [0, 4, 6, 19, 20, 21, 33, 34, 46, 50, 51, 53, 55, 58, 59, 66, 70], "correct": [0, 3, 4, 17, 21, 33, 34, 42, 53, 55, 70], "valu": [0, 4, 5, 13, 15, 17, 18, 20, 21, 22, 24, 29, 34, 35, 37, 40, 41, 46, 50, 51, 52, 53, 54, 55, 58, 59, 60, 61, 63, 64, 70, 71, 72, 73], "howev": [0, 1, 2, 3, 4, 6, 11, 12, 13, 14, 15, 18, 19, 20, 21, 26, 29, 32, 33, 37, 39, 43, 53, 57, 58, 59, 60, 61, 62, 65, 67, 71, 73], "recommend": [0, 3, 4, 5, 6, 10, 21, 24, 25, 42, 45, 48, 52, 53, 55, 56, 57, 58, 59], "hardcod": [0, 4], "exampl": [0, 1, 2, 3, 4, 5, 6, 7, 15, 20, 22, 23, 26, 27, 28, 29, 32, 33, 35, 36, 37, 42, 43, 44, 45, 46, 48, 49, 51, 52, 53, 54, 55, 56, 58, 59, 60, 63, 64, 65, 67, 68, 69, 71, 72, 73], "defin": [0, 2, 3, 4, 5, 21, 22, 24, 27, 31, 34, 39, 41, 45, 49, 51, 52, 55, 57, 60, 61, 64, 65, 70, 72, 73], "yourappl": [0, 3, 6, 29, 39, 42, 45, 46], "should": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 25, 27, 29, 33, 34, 42, 43, 51, 53, 54, 55, 58, 60, 61, 63, 64, 66, 67, 69, 70, 71, 72], "one": [0, 2, 3, 4, 6, 7, 9, 11, 12, 14, 16, 20, 22, 25, 28, 29, 35, 37, 39, 42, 45, 46, 50, 51, 53, 54, 55, 56, 59, 60, 61, 63, 67, 71, 72, 73], "two": [0, 3, 11, 12, 20, 31, 37, 39, 42, 49, 53, 55, 59, 61, 72, 73], "version": [0, 2, 3, 6, 7, 21, 22, 24, 26, 27, 29, 34, 35, 50, 53, 57, 58, 59, 63, 64, 66, 67, 69], "below": [0, 7, 9, 14, 21, 22, 27, 28, 42, 50, 53, 55, 60, 61, 63, 69], "split": [0, 20, 28, 39, 45, 58], "0": [0, 2, 3, 5, 6, 7, 9, 11, 12, 13, 16, 18, 19, 21, 24, 25, 27, 28, 34, 35, 40, 46, 50, 53, 55, 56, 57, 58, 59, 60, 63, 64, 66, 69, 70, 71], "why": [0, 4, 6, 20, 21, 24, 29, 34, 45, 53, 55], "work": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 18, 20, 21, 22, 24, 25, 34, 36, 39, 40, 45, 46, 51, 52, 53, 55, 58, 59, 60, 61, 62, 64, 67, 68, 69, 71, 73], "even": [0, 2, 3, 4, 5, 6, 8, 21, 24, 25, 26, 30, 46, 52, 53, 54, 55, 56, 59, 68, 70, 73], "thank": [0, 7, 20, 52], "how": [0, 1, 2, 3, 4, 5, 6, 13, 15, 17, 18, 19, 20, 21, 22, 24, 28, 29, 31, 33, 34, 35, 37, 39, 41, 42, 44, 45, 46, 47, 48, 52, 55, 58, 59, 60, 63, 64, 66, 67, 69, 71, 73], "look": [0, 3, 4, 5, 9, 11, 12, 16, 20, 21, 22, 24, 27, 28, 29, 34, 35, 39, 41, 42, 49, 52, 53, 54, 55, 58, 59, 60, 61, 67, 68, 69, 70, 73], "up": [0, 1, 2, 3, 4, 6, 7, 11, 14, 20, 21, 22, 27, 28, 29, 30, 31, 35, 39, 42, 43, 45, 51, 52, 53, 54, 55, 59, 60, 62, 63, 64, 65, 67, 69], "make": [0, 1, 2, 3, 4, 5, 6, 7, 9, 14, 15, 20, 21, 22, 24, 26, 29, 32, 34, 35, 36, 41, 42, 45, 46, 47, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 67, 68, 70, 71, 73], "pain": 0, "certain": [0, 3, 4, 6, 11, 12, 14, 20, 21, 23, 36, 51, 53, 58, 71], "assumpt": [0, 4], "sqlalchemi": [0, 4, 20, 22, 24, 27, 29, 36, 52, 53], "code": [0, 1, 2, 3, 4, 5, 6, 8, 11, 12, 13, 18, 19, 20, 21, 22, 24, 26, 31, 32, 34, 37, 39, 42, 43, 45, 46, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "trigger": [0, 2, 3, 4, 5, 21, 53, 55, 57], "sql": [0, 20, 36, 41, 46, 62, 66, 67, 71, 72], "queri": [0, 2, 4, 21, 22, 36, 37, 45, 53, 60, 61, 62, 72, 73], "mode": [0, 4, 7, 8, 18, 21, 22, 24, 46, 54, 56, 60, 63, 64, 66, 71], "properli": [0, 3, 4, 20, 39, 45, 53, 55], "set": [0, 1, 3, 4, 6, 7, 9, 17, 20, 21, 22, 27, 28, 29, 32, 34, 37, 39, 40, 42, 50, 51, 53, 60, 61, 62, 63, 64, 66, 67, 70, 71, 73], "lost": [0, 1, 22], "would": [0, 2, 3, 4, 5, 6, 7, 11, 12, 13, 18, 19, 20, 21, 22, 26, 28, 29, 30, 32, 34, 37, 39, 42, 46, 50, 51, 53, 55, 57, 58, 59, 60, 61, 71, 72, 73], "onli": [0, 2, 3, 4, 5, 6, 8, 13, 14, 15, 17, 19, 20, 21, 22, 25, 27, 28, 32, 35, 37, 39, 42, 45, 46, 51, 53, 54, 55, 56, 57, 59, 61, 63, 65, 66, 68, 71, 73], "pick": [0, 4, 56, 58], "frontend": [0, 28, 29, 44, 50], "new": [0, 1, 2, 3, 4, 5, 6, 21, 22, 23, 28, 31, 34, 35, 37, 42, 50, 51, 52, 53, 54, 57, 58, 59, 61, 62, 63, 65, 66, 68, 71, 72, 73], "7": [0, 2, 3, 6, 11, 12, 13, 18, 22, 24, 25, 50, 66], "were": [0, 4, 6, 20, 21, 30, 35, 53, 55, 57, 58, 71], "ad": [0, 3, 4, 5, 6, 9, 16, 24, 25, 31, 34, 36, 42, 52, 53, 55, 59, 61, 69, 71, 72], "8": [0, 6, 24, 41], "11": [0, 5, 6, 24, 57], "wa": [0, 3, 4, 6, 7, 20, 21, 34, 43, 45, 46, 50, 53, 54, 55, 56, 59, 60, 61, 62, 71, 72], "1": [0, 2, 5, 6, 9, 11, 12, 13, 16, 17, 18, 19, 21, 22, 24, 25, 27, 34, 39, 45, 46, 53, 56, 58, 59, 60, 61, 63, 64, 66, 69, 70, 71], "subdomain": [0, 3, 4, 6, 36], "match": [0, 4, 5, 6, 8, 21, 47, 50, 52, 54, 60, 61, 71, 72], "need": [0, 1, 2, 4, 5, 6, 7, 10, 13, 14, 15, 18, 20, 21, 22, 23, 25, 27, 31, 33, 34, 37, 39, 42, 43, 44, 45, 46, 51, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 71, 72, 73], "enabl": [0, 2, 3, 4, 5, 6, 8, 11, 12, 20, 25, 28, 39, 47, 53, 54, 55, 56, 59], "manual": [0, 5, 9, 24, 36, 37, 53, 60, 70, 73], "now": [0, 4, 5, 15, 17, 20, 21, 25, 31, 33, 34, 42, 46, 52, 53, 55, 58, 59, 60, 61, 62, 64, 66, 67, 68, 69, 70, 72, 73], "server_nam": [0, 4, 6, 16], "doe": [0, 1, 3, 4, 5, 6, 11, 12, 13, 15, 18, 19, 21, 24, 25, 26, 28, 29, 30, 32, 34, 35, 42, 45, 46, 49, 51, 52, 53, 54, 55, 57, 59, 60, 61, 62, 63, 64, 70], "implicitli": [0, 4, 6], "str": [0, 3, 4, 6, 21, 71], "specifi": [0, 3, 4, 5, 6, 13, 15, 18, 19, 22, 27, 33, 34, 53, 55, 58, 61], "differ": [0, 2, 3, 4, 5, 6, 9, 14, 15, 16, 20, 21, 22, 24, 25, 28, 29, 35, 37, 43, 45, 53, 54, 55, 56, 58, 59, 60, 61, 62, 63, 68, 70, 71, 72, 73], "path": [0, 3, 4, 5, 6, 20, 21, 33, 34, 36, 43, 44, 46, 51, 53, 54, 60, 64, 69, 71], "web": [0, 3, 5, 6, 14, 20, 22, 24, 33, 35, 36, 51, 55, 62, 64, 68], "default": [0, 3, 4, 5, 6, 7, 8, 13, 18, 20, 21, 22, 24, 28, 34, 35, 37, 44, 51, 53, 55, 59, 60, 61, 62, 63, 64, 71, 72, 73], "union": 0, "pathlik": [0, 4], "serv": [0, 2, 4, 5, 6, 9, 10, 11, 12, 14, 16, 19, 25, 28, 31, 33, 34, 37, 44, 53, 63, 64, 69], "rel": [0, 3, 4, 6, 20, 33, 49, 53, 60, 62, 64, 67, 69, 70], "absolut": [0, 3, 4, 6, 53], "host": [0, 4, 6, 9, 13, 16, 17, 19, 21, 24, 28, 53, 63], "when": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 27, 29, 30, 32, 34, 35, 37, 42, 43, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 71, 72, 73], "requir": [0, 2, 4, 6, 7, 8, 11, 12, 13, 15, 18, 19, 20, 22, 25, 27, 33, 34, 36, 37, 41, 45, 52, 55, 57, 59, 60, 61, 62, 65, 70, 71], "true": [0, 1, 4, 6, 8, 22, 28, 29, 34, 35, 41, 42, 45, 46, 52, 54, 55, 56, 58, 60, 61, 64, 66, 71, 73], "bool": 0, "url_map": [0, 3, 4, 50, 51], "attribut": [0, 1, 4, 6, 22, 29, 37, 41, 52, 53, 55, 58, 59, 60, 61, 70], "consid": [0, 2, 3, 6, 7, 21, 22, 50, 54, 55], "root": [0, 4, 6, 11, 12, 13, 15, 18, 19, 20, 27, 33, 37, 53], "altern": [0, 6, 32, 35, 41], "By": [0, 3, 5, 6, 20, 21, 34, 37, 53, 57, 60, 67, 73], "next": [0, 4, 5, 6, 14, 28, 34, 35, 39, 42, 51, 53, 64, 68, 71, 72, 73], "assum": [0, 9, 16, 21, 22, 28, 31, 34, 46, 51, 53, 63, 65, 67], "filenam": [0, 3, 4, 6, 33, 34, 37, 49, 53, 60, 69, 70], "config": [0, 1, 3, 4, 6, 7, 9, 22, 23, 27, 29, 31, 34, 41, 53, 55, 59, 60, 62, 63, 64, 67, 71], "instead": [0, 1, 3, 4, 5, 6, 9, 11, 12, 13, 14, 18, 19, 20, 21, 22, 24, 27, 28, 31, 32, 34, 37, 38, 39, 42, 45, 46, 53, 54, 55, 58, 59, 60, 61, 62, 63, 64, 70, 71, 72, 73], "t": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 15, 18, 19, 20, 21, 22, 27, 29, 31, 33, 34, 37, 39, 45, 50, 53, 54, 55, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73], "detect": [0, 4, 5, 25, 29, 55, 60, 63], "automat": [0, 1, 4, 5, 7, 9, 20, 21, 25, 27, 29, 37, 45, 47, 50, 51, 53, 54, 55, 56, 57, 59, 60, 61, 64, 66, 69, 70, 73], "namespac": [0, 1, 4, 22, 58], "abort": [0, 3, 4, 21, 27, 34, 53, 58, 61], "aborter_class": [0, 4], "make_abort": [0, 4], "call": [0, 1, 2, 3, 4, 5, 6, 13, 14, 15, 19, 20, 21, 22, 23, 28, 29, 31, 32, 34, 37, 39, 41, 42, 45, 46, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 66, 70, 71, 72, 73], "rais": [0, 3, 4, 6, 8, 21, 34, 37, 53, 54, 61, 64, 71], "http": [0, 2, 4, 5, 6, 7, 9, 11, 13, 14, 16, 17, 18, 19, 21, 24, 26, 34, 36, 37, 49, 52, 54, 56, 60, 61, 63, 64, 69, 70, 73], "error": [0, 1, 2, 4, 6, 13, 15, 19, 24, 28, 34, 35, 37, 52, 61, 70, 71, 72, 73], "directli": [0, 1, 4, 5, 6, 11, 12, 15, 19, 20, 21, 34, 37, 45, 46, 47, 53, 58, 60, 64, 70, 71, 72, 73], "well": [0, 2, 3, 4, 6, 11, 12, 20, 22, 23, 26, 30, 31, 33, 34, 37, 41, 43, 45, 50, 53, 58, 59, 67, 70], "2": [0, 2, 6, 7, 13, 15, 18, 22, 24, 53, 60, 66, 71, 73], "move": [0, 1, 4, 22, 29, 32, 42, 54, 55], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 18, 19, 20, 21, 27, 28, 29, 34, 35, 37, 39, 46, 49, 50, 52, 53, 54, 55, 57, 58, 60, 62, 63, 64, 68, 70, 71, 72, 73], "alia": [0, 4], "add_template_filt": [0, 4], "f": [0, 3, 6, 37, 39, 43, 45, 46, 47, 51, 53, 58, 59, 60, 61, 62, 71, 72, 73], "regist": [0, 1, 4, 6, 22, 24, 32, 34, 45, 52, 57, 61, 64, 65, 67, 71, 73], "custom": [0, 3, 4, 22, 24, 25, 48, 53, 55, 58, 59, 73], "filter": [0, 3, 4, 20, 24, 36, 37, 45, 52, 53, 55, 68], "exactli": [0, 22, 34, 45, 51, 58], "template_filt": [0, 4, 59], "decor": [0, 2, 3, 4, 5, 20, 21, 22, 24, 36, 39, 42, 47, 50, 53, 59, 61, 69, 72], "otherwis": [0, 1, 4, 11, 12, 13, 18, 19, 21, 22, 26, 28, 34, 37, 42, 45, 51, 52, 53, 55, 56, 61, 62, 63, 71, 72], "callabl": [0, 4, 20], "ani": [0, 2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 16, 18, 20, 21, 22, 26, 27, 28, 31, 32, 37, 39, 52, 53, 54, 55, 57, 58, 60, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73], "return": [0, 1, 2, 3, 4, 5, 6, 20, 22, 24, 27, 28, 29, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 57, 58, 59, 60, 61, 62, 64, 67, 70, 71, 72, 73], "type": [0, 4, 6, 13, 21, 22, 23, 34, 35, 36, 37, 45, 47, 49, 51, 52, 53, 54, 60, 61, 66, 67, 69, 70, 72], "add_template_glob": 0, "template_glob": [0, 4], "10": [0, 5, 6, 24, 55, 58, 59, 66], "add_template_test": 0, "template_test": [0, 4], "add_url_rul": [0, 4, 33, 34, 39, 61, 73], "endpoint": [0, 3, 4, 34, 36, 39, 44, 50, 53, 61], "view_func": [0, 39, 73], "provide_automatic_opt": [0, 4], "build": [0, 4, 20, 21, 24, 49, 59, 60, 66, 67], "shortcut": [0, 4, 6, 33, 53], "argument": [0, 3, 4, 5, 6, 11, 12, 13, 15, 19, 22, 29, 35, 37, 41, 46, 52, 53, 56, 58, 59, 60, 61, 71, 72, 73], "These": [0, 2, 3, 5, 7, 14, 21, 25, 36, 37, 45, 46, 53, 54, 55, 58, 59, 62], "equival": [0, 5, 6, 8, 13, 19, 20, 29, 73], "def": [0, 1, 2, 3, 5, 6, 20, 21, 22, 27, 28, 29, 31, 32, 33, 34, 35, 37, 39, 40, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55, 58, 59, 60, 61, 62, 64, 67, 71, 72, 73], "index": [0, 3, 7, 20, 21, 22, 27, 29, 35, 39, 42, 44, 46, 49, 50, 51, 53, 55, 58, 60, 67, 68, 70, 71, 72], "isn": [0, 4, 8, 20, 21, 55, 62, 69], "ha": [0, 1, 2, 3, 4, 5, 6, 13, 18, 20, 21, 22, 27, 31, 34, 39, 41, 42, 45, 46, 47, 50, 51, 53, 54, 55, 59, 60, 61, 62, 64, 69, 72], "alreadi": [0, 2, 4, 5, 6, 7, 9, 20, 29, 31, 34, 43, 45, 47, 51, 52, 53, 54, 60, 64, 65, 69, 71, 72], "been": [0, 2, 4, 22, 61, 62, 66, 71], "method": [0, 2, 4, 5, 6, 18, 21, 22, 24, 27, 34, 35, 36, 37, 43, 45, 50, 52, 54, 55, 56, 57, 58, 60, 61, 70, 71, 72], "get": [0, 1, 2, 3, 4, 5, 6, 15, 17, 21, 22, 24, 28, 29, 32, 33, 34, 35, 36, 37, 40, 43, 45, 46, 47, 51, 53, 54, 55, 57, 58, 59, 60, 61, 63, 64, 67, 68, 70, 71, 72, 73], "head": [0, 3, 4, 40, 45, 49, 52, 53, 59], "necessarili": [0, 62], "particip": 0, "must": [0, 4, 5, 6, 11, 12, 13, 15, 17, 18, 22, 26, 28, 31, 37, 46, 49, 52, 53, 61, 70, 71], "associ": [0, 3, 5, 9, 16, 61, 72], "some": [0, 1, 4, 5, 6, 8, 14, 18, 20, 21, 22, 23, 27, 30, 31, 32, 33, 34, 36, 40, 42, 43, 47, 51, 53, 54, 55, 57, 58, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71], "point": [0, 1, 3, 4, 5, 6, 9, 16, 18, 22, 31, 32, 37, 43, 46, 47, 53, 54, 56, 57, 62, 65, 71], "required_method": [0, 4], "those": [0, 2, 4, 5, 8, 17, 20, 21, 27, 29, 37, 49, 53, 60, 70, 71, 73], "provide_automatic_method": 0, "string": [0, 4, 5, 6, 20, 22, 31, 39, 45, 46, 47, 50, 51, 52, 53, 59, 60, 61, 64], "byte": [0, 4, 6, 43, 53, 55, 57, 60, 63, 71], "list": [0, 4, 6, 7, 9, 14, 16, 22, 26, 35, 46, 52, 53, 58, 59, 61, 63, 66, 69, 71, 72, 73], "map": [0, 3, 4, 6, 36, 50, 51, 72, 73], "iter": [0, 4, 20, 41, 46, 47, 53, 59], "tupl": [0, 4, 45, 46, 53, 60, 72], "header": [0, 4, 6, 9, 15, 16, 17, 21, 24, 28, 37, 40, 53, 60, 61, 69, 70, 71], "sequenc": 0, "int": [0, 6, 37, 53, 61, 73], "wsgiapplic": 0, "await": [0, 10, 11, 12, 13, 18, 24, 37], "add": [0, 2, 4, 5, 6, 7, 8, 9, 16, 20, 21, 22, 23, 24, 27, 29, 31, 33, 35, 37, 39, 41, 42, 45, 46, 51, 52, 53, 54, 60, 61, 62, 64, 67, 69, 73], "respond": [0, 3, 4, 72], "extra": [0, 2, 3, 4, 5, 20, 21, 22, 23, 33, 53, 55, 58, 71, 73], "after_request": [0, 4, 32, 54], "run": [0, 1, 2, 3, 4, 6, 8, 9, 14, 16, 20, 21, 22, 24, 25, 27, 28, 29, 30, 34, 36, 37, 41, 42, 47, 53, 54, 55, 56, 57, 59, 61, 62, 66, 67, 70, 72], "after": [0, 1, 2, 4, 6, 14, 15, 21, 22, 24, 27, 29, 32, 34, 37, 39, 41, 42, 45, 50, 51, 53, 54, 55, 60, 61, 62, 70, 71, 72], "each": [0, 1, 2, 4, 13, 14, 15, 17, 19, 20, 22, 23, 24, 25, 27, 28, 35, 41, 42, 45, 46, 47, 51, 53, 54, 55, 60, 61, 62, 67, 70, 71, 72, 73], "allow": [0, 2, 4, 6, 8, 11, 12, 21, 22, 25, 28, 34, 45, 49, 51, 53, 54, 56, 57, 58, 59, 60, 61, 62, 71, 72], "modifi": [0, 3, 4, 6, 24, 26, 29, 32, 34, 53, 54, 55, 58, 61, 63, 71, 72], "replac": [0, 4, 5, 7, 21, 32, 36, 40, 51, 55, 59, 70, 71, 72], "befor": [0, 2, 3, 4, 5, 6, 7, 8, 20, 21, 22, 24, 25, 27, 29, 34, 37, 39, 40, 43, 45, 46, 53, 54, 59, 60, 61, 62, 64, 70, 72], "sent": [0, 1, 6, 21, 37, 47, 54, 55, 62, 71, 72], "except": [0, 1, 3, 4, 6, 7, 8, 27, 28, 34, 45, 46, 54, 61, 64, 70, 72, 73], "remain": [0, 2, 4, 6, 20, 22, 39, 59, 60], "therefor": [0, 2, 6, 37], "action": [0, 58, 61, 69], "execut": [0, 3, 4, 5, 8, 9, 16, 20, 21, 31, 32, 34, 45, 46, 50, 53, 54, 55, 57, 58, 61, 62, 71, 72], "close": [0, 1, 4, 5, 22, 35, 36, 45, 46, 55, 60, 62, 71], "teardown_request": [0, 4, 22, 54, 57], "t_after_request": 0, "after_request_func": 0, "dict": [0, 4, 6, 21, 22, 37, 45, 46, 51, 53, 59, 60, 62, 71, 72], "ft": 0, "apporblueprintkei": 0, "afterrequestcal": 0, "A": [0, 1, 3, 4, 6, 14, 20, 21, 22, 24, 26, 28, 29, 31, 32, 33, 36, 37, 41, 49, 51, 54, 55, 59, 60, 61, 64, 67, 68, 71, 72, 73], "structur": [0, 4, 42, 65, 70], "end": [0, 1, 4, 5, 6, 9, 16, 20, 22, 32, 35, 36, 42, 43, 45, 46, 53, 54, 55, 59, 60, 61, 62, 67, 69, 70, 72], "format": [0, 4, 6, 7, 27, 33, 37, 46, 51, 53, 54, 63, 68], "scope": [0, 9, 16, 18, 36], "kei": [0, 4, 6, 22, 31, 34, 46, 49, 51, 59, 60, 62, 72], "activ": [0, 1, 4, 5, 6, 7, 11, 12, 13, 15, 18, 19, 22, 24, 46, 47, 53, 54, 57, 59, 62, 64], "To": [0, 1, 3, 4, 5, 6, 9, 11, 12, 13, 16, 21, 27, 29, 35, 37, 40, 41, 42, 43, 45, 46, 49, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61, 66, 70, 71, 72, 73], "its": [0, 3, 5, 9, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 25, 26, 27, 53, 56, 58, 59, 61, 63, 66, 68, 72, 73], "mai": [0, 3, 4, 5, 6, 9, 11, 12, 14, 16, 20, 21, 22, 23, 25, 26, 27, 33, 34, 36, 37, 41, 48, 49, 53, 54, 55, 56, 60, 62, 63, 67], "chang": [0, 2, 3, 5, 6, 7, 8, 20, 21, 22, 24, 25, 27, 29, 37, 43, 53, 54, 55, 56, 59, 60, 61, 62, 63, 64, 66, 69, 70, 71, 72, 73], "time": [0, 2, 3, 4, 5, 6, 14, 20, 21, 22, 29, 30, 32, 51, 53, 54, 55, 57, 58, 61, 62, 64, 71, 73], "app_context": [0, 1, 4, 31, 46, 60, 71], "appcontext": [0, 4, 46, 54], "block": [0, 1, 2, 4, 20, 21, 35, 37, 47, 49, 53, 54, 56, 58, 59, 60, 61, 67, 69, 70, 71], "push": [0, 4, 5, 6, 7, 24, 57, 60], "context": [0, 4, 6, 11, 12, 13, 18, 20, 21, 22, 24, 31, 36, 45, 46, 55, 71], "current_app": [0, 1, 2, 22, 29, 54, 58, 60, 62], "requestcontext": [0, 4, 54, 57], "handl": [0, 1, 2, 3, 4, 5, 9, 11, 12, 16, 20, 22, 24, 28, 32, 34, 37, 45, 46, 48, 50, 51, 52, 53, 54, 56, 61, 62, 64, 72, 73], "outsid": [0, 1, 4, 6, 9, 16, 22, 27, 36, 46, 53, 54, 64, 71], "situat": [0, 21, 27, 32, 35, 52, 53, 54, 57], "init_db": [0, 1, 45, 46, 62, 71], "9": [0, 2, 6, 24, 35, 66], "app_ctx_globals_class": [0, 4], "_appctxglob": 0, "async_to_sync": 0, "func": [0, 2], "sync": [0, 2, 13, 18], "coroutin": [0, 2, 11, 12, 20, 54], "result": [0, 2, 4, 28, 30, 31, 35, 45, 46, 51, 53, 57, 60, 61, 71, 72], "arg": [0, 2, 6, 21, 31, 39, 46, 47, 51, 52, 53, 54, 60, 71], "kwarg": [0, 2, 4, 31, 39, 51, 52, 72], "overrid": [0, 2, 3, 4, 6, 22, 24, 36, 48, 49, 53, 64, 70, 73], "convert": [0, 4, 6, 14, 21, 36, 37, 42, 46, 51, 53, 54, 55, 59, 71, 73], "async": [0, 4, 10, 11, 12, 24], "synchron": [0, 11, 12], "auto_find_instance_path": 0, "tri": [0, 3, 4, 5, 53, 54, 55, 56, 64], "locat": [0, 3, 4, 5, 6, 9, 16, 34, 37, 49, 53, 60, 62, 64, 66, 71], "constructor": [0, 3, 4, 6], "basic": [0, 3, 7, 9, 13, 14, 15, 16, 18, 19, 21, 24, 34, 35, 36, 41, 45, 49, 53, 55, 57, 65, 70], "calcul": [0, 30, 43, 51], "before_first_request": [0, 4], "without": [0, 2, 3, 4, 6, 7, 9, 11, 12, 14, 15, 16, 20, 21, 22, 26, 31, 34, 37, 39, 47, 53, 55, 59, 60, 61, 70, 71, 72, 73], "ignor": [0, 4, 6, 53, 57, 67], "deprec": [0, 4, 6, 20, 31], "sinc": [0, 1, 4, 5, 6, 17, 20, 21, 22, 31, 51, 53, 59, 60, 61, 62, 63, 70, 72, 73], "Will": [0, 6], "remov": [0, 4, 5, 6, 9, 16, 31, 45, 50, 53, 55, 70, 71, 72], "3": [0, 5, 6, 7, 11, 12, 13, 18, 22, 24, 25, 35, 36, 53, 55, 57, 66, 71], "setup": [0, 4, 5, 11, 12, 13, 15, 18, 19, 21, 22, 24, 37, 41, 42, 57, 60, 63, 65, 66, 67], "t_before_first_request": 0, "before_first_request_func": 0, "beforefirstrequestcal": 0, "begin": [0, 1, 4, 22, 36, 54, 63, 71, 72], "before_request": [0, 4, 22, 32, 54, 58, 60], "open": [0, 3, 4, 6, 7, 20, 22, 24, 36, 46, 60, 62, 71], "databas": [0, 1, 2, 4, 6, 20, 21, 22, 23, 24, 34, 36, 41, 45, 46, 53, 57, 60, 61, 63, 64, 65, 68, 72, 73], "connect": [0, 1, 4, 11, 12, 20, 21, 22, 23, 36, 45, 57, 58, 64, 71], "log": [0, 4, 6, 8, 13, 15, 19, 20, 24, 35, 36, 37, 51, 55, 61, 65, 71, 72], "user": [0, 3, 4, 5, 6, 7, 14, 15, 21, 22, 27, 28, 32, 34, 35, 36, 37, 39, 45, 46, 51, 52, 53, 55, 57, 59, 60, 61, 62, 65, 66, 67, 71, 72, 73], "load_us": 0, "user_id": [0, 21, 22, 37, 46, 55, 60, 71, 72], "g": [0, 1, 3, 4, 10, 20, 21, 22, 32, 45, 46, 50, 51, 53, 54, 57, 58, 59, 60, 61, 62, 70, 71, 72, 73], "db": [0, 1, 6, 22, 29, 37, 41, 45, 46, 60, 61, 62, 63, 67, 71, 72, 73], "non": [0, 4, 6, 11, 12, 13, 18, 19, 20, 21, 60], "further": [0, 3, 4, 24, 29, 39, 50, 51, 60, 62, 73], "stop": [0, 2, 56, 62], "t_before_request": 0, "before_request_func": 0, "beforerequestcal": 0, "retain": [0, 26], "order": [0, 4, 5, 6, 20, 28, 46, 48, 53, 55, 58, 61, 73], "multipl": [0, 2, 3, 4, 5, 6, 13, 18, 19, 20, 22, 28, 29, 42, 45, 52, 53, 54, 62, 67, 73], "track": [0, 1, 4, 54], "often": [0, 6, 9, 16, 27, 32, 46, 53], "thei": [0, 2, 3, 4, 5, 6, 8, 9, 15, 20, 21, 22, 24, 25, 28, 30, 34, 35, 36, 37, 45, 50, 51, 53, 54, 55, 58, 59, 60, 61, 62, 66, 68, 69, 70, 72, 73], "attach": [0, 4, 6, 53, 55], "click": [0, 4, 5, 7, 25, 55, 60, 62, 66, 68, 70, 71], "group": [0, 4, 5, 15, 25, 42, 60, 72, 73], "avail": [0, 3, 4, 5, 6, 9, 13, 14, 15, 16, 18, 19, 20, 21, 22, 37, 51, 53, 54, 56, 57, 58, 59, 61, 62, 65, 70, 72], "discov": [0, 27], "have": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 14, 18, 20, 21, 22, 25, 27, 28, 29, 30, 34, 35, 37, 39, 42, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 68, 70, 71, 72], "dictionari": [0, 4, 6, 21, 34, 46, 50, 51, 53, 59], "behav": [0, 4, 6, 39, 53, 62, 70], "regular": [0, 3, 4, 55, 73], "addit": [0, 2, 4, 5, 6, 7, 13, 19, 21, 45, 51, 53, 60], "config_class": [0, 4], "context_processor": [0, 59], "processor": [0, 4, 24, 36], "t_template_context_processor": 0, "create_global_jinja_load": 0, "loader": [0, 4], "jinja2": [0, 3, 4, 20, 47, 52, 53, 55, 59, 66], "environ": [0, 4, 7, 8, 14, 24, 27, 28, 40, 43, 47, 53, 54, 63, 66, 67], "rest": [0, 23, 24, 31, 62, 64, 73], "unchang": [0, 34, 51], "discourag": [0, 4, 6], "jinja_load": 0, "dispatch": [0, 3, 4, 6, 24, 36, 54, 60], "between": [0, 1, 4, 6, 25, 28, 37, 58, 64, 70], "individu": [0, 6, 52, 60, 61], "dispatchingjinjaload": 0, "create_jinja_environ": [0, 4], "jinja": [0, 4, 20, 24, 25, 37, 49, 53, 55, 61, 68, 70], "jinja_opt": [0, 4], "variou": [0, 4, 20, 30, 43, 55, 73], "relat": [0, 1, 2, 4, 5, 6, 20, 22, 36, 41, 46, 54, 63, 72], "effect": [0, 70], "also": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 16, 20, 21, 22, 24, 27, 28, 29, 31, 34, 35, 36, 37, 41, 44, 45, 46, 47, 53, 54, 55, 56, 57, 58, 59, 60, 61, 63, 64, 66, 68, 70, 71, 72, 73], "auto_reload": 0, "accord": [0, 53], "templates_auto_reload": [0, 4, 6], "5": [0, 6, 24, 30, 31, 34, 41, 51, 53, 55, 68, 71], "create_url_adapt": [0, 4], "adapt": [0, 2, 4, 10, 52], "given": [0, 3, 4, 5, 21, 22, 37, 50, 53, 55, 71, 73], "yet": [0, 4, 20, 28, 32, 42, 50, 53, 62, 70], "explicitli": [0, 4, 6, 21, 50, 53, 55, 59], "6": [0, 6, 24, 31, 34, 52, 58, 59, 66, 71], "longer": [0, 4, 5, 20, 37, 50, 53, 60, 71], "mapadapt": 0, "properti": [0, 3, 4, 6, 37, 60], "whether": [0, 2, 4, 6, 14, 26], "start": [0, 2, 4, 5, 6, 8, 11, 12, 13, 15, 18, 20, 21, 22, 24, 27, 32, 34, 43, 45, 49, 53, 54, 56, 57, 58, 60, 64, 65, 66, 68, 69, 70, 71, 72, 73], "develop": [0, 4, 7, 8, 14, 15, 20, 21, 23, 24, 25, 28, 29, 30, 34, 53, 54, 55, 61, 63, 64, 65, 66, 71], "server": [0, 2, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 27, 28, 33, 34, 35, 37, 41, 54, 55, 60, 61, 62, 64, 70, 71], "interact": [0, 4, 5, 6, 8, 21, 22, 28, 36, 53, 54, 56, 57, 64, 71], "debugg": [0, 4, 5, 6, 14, 21, 24, 28, 53, 54, 56, 64], "shown": [0, 4, 6, 11, 12, 13, 15, 18, 19, 21, 37, 53, 60, 61, 70, 72], "unhandl": [0, 4, 6, 8, 54], "reload": [0, 4, 6, 8, 14, 25, 37, 53, 64, 70], "expect": [0, 2, 3, 4, 5, 6, 7, 11, 12, 13, 18, 20, 21, 22, 54, 55, 60, 71], "late": [0, 36, 66, 71], "do": [0, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 18, 19, 20, 21, 22, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 40, 42, 43, 46, 47, 50, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 65, 66, 67, 68, 71, 72, 73], "deploi": [0, 5, 6, 9, 16, 24, 28, 56, 62, 64, 65, 66, 71], "product": [0, 4, 5, 9, 11, 12, 16, 20, 21, 24, 25, 26, 27, 28, 34, 53, 56, 65, 71], "default_config": 0, "application_root": [0, 4, 6], "env": [0, 4, 5, 6, 7, 43, 62], "explain_template_load": [0, 3, 4, 6], "jsonify_mimetyp": [0, 4, 6], "jsonify_prettyprint_regular": [0, 4, 6], "json_as_ascii": [0, 4, 6], "json_sort_kei": [0, 4, 6], "max_content_length": [0, 4, 6, 34], "max_cookie_s": [0, 4, 6], "4093": [0, 4, 6], "permanent_session_lifetim": [0, 6, 55], "datetim": [0, 4, 6], "timedelta": [0, 4, 6], "dai": [0, 6], "31": [0, 4, 6], "preferred_url_schem": [0, 4, 6], "propagate_except": [0, 4, 6], "secret_kei": [0, 6, 35, 53, 63, 64], "send_file_max_age_default": [0, 4, 6], "session_cookie_domain": [0, 4, 6], "session_cookie_httponli": [0, 6, 55], "session_cookie_nam": [0, 4, 6], "session_cookie_path": [0, 6], "session_cookie_samesit": [0, 4, 6, 55], "session_cookie_secur": [0, 6, 55], "session_refresh_each_request": [0, 4, 6], "trap_bad_request_error": [0, 4, 6], "trap_http_except": [0, 6], "use_x_sendfil": [0, 4, 6], "delet": [0, 4, 20, 40, 42, 55, 65, 71, 72, 73], "t_rout": 0, "dispatch_request": [0, 2, 73], "handler": [0, 1, 2, 4, 6, 24, 29, 39, 46, 54, 55, 58], "In": [0, 3, 4, 5, 6, 9, 16, 20, 21, 22, 24, 25, 28, 36, 37, 40, 42, 45, 46, 49, 53, 55, 58, 59, 61, 62, 63, 65, 67, 71, 72, 73], "proper": [0, 4, 20, 21, 57], "make_respons": [0, 4, 53], "full_dispatch_request": 0, "do_teardown_appcontext": 0, "exc": 0, "pop": [0, 1, 4, 50, 53, 54, 57, 62], "do_teardown_request": 0, "teardown_appcontext": [0, 1, 22, 45, 46, 54, 62], "Then": [0, 6, 9, 16, 29, 37, 39, 40, 41, 42, 45, 61, 67, 72, 73], "appcontext_tearing_down": [0, 1], "baseexcept": [0, 4], "final": [0, 58, 60, 65, 70], "request_tearing_down": [0, 54, 58], "delai": [0, 31], "dure": [0, 1, 4, 5, 6, 8, 14, 21, 23, 24, 27, 31, 32, 47, 53, 54, 56, 62, 64, 71, 73], "maintain": [0, 4, 7, 14, 20, 22, 24, 53], "access": [0, 1, 3, 4, 5, 6, 8, 13, 20, 21, 22, 24, 27, 29, 34, 35, 37, 43, 45, 46, 47, 52, 54, 56, 58, 59, 64, 65, 71], "while": [0, 1, 3, 4, 5, 6, 20, 21, 22, 23, 31, 34, 42, 45, 47, 51, 53, 54, 55, 56, 64, 65, 67, 71], "current": [0, 1, 3, 4, 5, 7, 20, 32, 39, 46, 51, 53, 54, 55, 57, 59, 60, 61, 63, 64, 66, 71], "teardown": [0, 2, 4, 46, 60], "ex": [0, 3], "ensure_sync": [0, 2], "ensur": [0, 4, 6, 20, 22, 25, 37, 42, 55, 61, 64], "worker": [0, 2, 4, 11, 12, 13, 15, 18, 19, 21, 22, 36, 54], "plain": [0, 21, 53, 61, 69], "wrap": [0, 2, 4, 7, 10, 17, 20, 22, 31, 39, 40, 43, 51, 53, 54, 59, 72], "wait": [0, 7, 31, 56], "error_handler_spec": [0, 4], "errorhandlercal": 0, "statu": [0, 21, 34, 44, 53, 61, 71], "httpexcept": [0, 4, 6, 21], "other": [0, 1, 3, 4, 5, 6, 7, 9, 11, 12, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 31, 32, 37, 39, 42, 47, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 73], "innermost": [0, 51], "errorhandl": [0, 3, 4, 21, 53, 54], "code_or_except": 0, "404": [0, 3, 21, 28, 53, 61, 71], "page_not_found": [0, 3, 21, 53], "page": [0, 3, 4, 6, 7, 9, 13, 14, 15, 16, 18, 19, 24, 25, 28, 36, 37, 49, 51, 52, 53, 54, 55, 59, 60, 61, 62, 64, 68, 69, 70, 71, 72, 73], "exist": [0, 1, 3, 4, 6, 9, 16, 20, 22, 28, 32, 34, 42, 51, 53, 55, 59, 61, 62, 63, 64, 71, 72], "arbitrari": [0, 4, 8, 20, 40, 53, 55], "databaseerror": 0, "special_exception_handl": 0, "fail": [0, 4, 5, 7, 21, 27, 35, 46, 53, 54, 56, 58, 71, 72], "500": [0, 4, 21, 54, 71], "register_error_handl": [0, 4, 21], "wide": [0, 4, 20, 21], "One": [0, 4, 22, 24, 32, 35, 39, 52, 54, 57], "addition": [0, 3, 4, 21, 46, 58, 59], "subclass": [0, 4, 6, 20, 21, 22, 24, 27, 31, 34, 36, 45, 73], "integ": [0, 45, 53, 62], "t_error_handl": 0, "place": [0, 1, 4, 6, 29, 31, 34, 39, 44, 46, 53, 55, 56, 57, 60, 61, 62, 69, 70, 72], "store": [0, 4, 6, 20, 22, 24, 29, 34, 43, 51, 53, 55, 57, 60, 62, 70, 72, 73], "specif": [0, 2, 3, 4, 6, 11, 12, 13, 18, 19, 20, 21, 22, 24, 26, 28, 29, 34, 39, 50, 51, 53, 54, 55, 57, 58, 59, 60, 63, 70], "state": [0, 22, 29, 55, 73], "could": [0, 3, 4, 6, 8, 13, 15, 18, 20, 21, 22, 28, 29, 35, 46, 50, 53, 55, 57, 59, 61, 63, 70, 73], "engin": [0, 4, 14, 18, 24, 39, 45, 47, 49, 53, 55, 59], "similar": [0, 1, 4, 5, 14, 20, 21, 27, 28, 45, 53, 54, 56, 58, 61, 62, 64, 70, 71], "thing": [0, 4, 6, 11, 12, 20, 21, 30, 31, 39, 42, 47, 51, 52, 55, 57, 58, 59, 62, 73], "case": [0, 2, 3, 4, 5, 6, 13, 18, 20, 21, 22, 23, 25, 28, 29, 37, 39, 40, 42, 45, 51, 53, 55, 57, 58, 59, 64, 72, 73], "foo": [0, 6, 23], "flask_foo": [0, 23], "top": [0, 3, 4, 6, 20, 41, 42, 53, 54, 55, 64, 67, 69], "perform": [0, 4, 6, 9, 13, 16, 18, 20, 24, 37, 54, 59, 62], "pre": [0, 4, 7, 9, 16, 69], "postprocess": 0, "catch": [0, 4, 8, 21, 44, 53], "get_send_file_max_ag": [0, 4, 6], "send_fil": [0, 4, 6], "determin": [0, 20, 21, 58], "max_ag": [0, 4, 55], "cach": [0, 1, 4, 6, 22, 24, 36, 37, 69, 73], "wasn": [0, 2], "tell": [0, 4, 5, 6, 9, 13, 14, 15, 16, 18, 19, 20, 27, 35, 37, 42, 49, 52, 53, 55, 62, 63, 64, 66, 67, 70, 71], "browser": [0, 4, 6, 7, 8, 11, 12, 13, 18, 19, 33, 34, 35, 37, 47, 52, 53, 55, 57, 61, 64, 69, 70, 71, 72], "condit": [0, 4, 6, 26, 71], "prefer": [0, 4, 5, 6, 7, 11, 12, 20, 22, 29, 37, 45, 56, 72], "12": [0, 24], "hour": 0, "got_first_request": 0, "handle_except": [0, 21], "e": [0, 3, 4, 5, 6, 7, 10, 21, 22, 42, 45, 62, 66, 71], "did": [0, 4, 42, 45, 53, 54, 55, 64], "caus": [0, 4, 8, 11, 12, 13, 18, 19, 20, 21, 26, 34, 35, 53, 55, 59, 64, 70], "internalservererror": [0, 4, 21], "send": [0, 4, 6, 21, 23, 24, 27, 31, 34, 37, 47, 51, 53, 54, 55, 72], "got_request_except": [0, 54], "re": [0, 4, 5, 6, 7, 13, 14, 18, 19, 20, 21, 22, 33, 34, 37, 51, 52, 53, 57, 60, 61, 62, 64, 65, 66, 67, 68, 70, 73], "displai": [0, 21, 34, 35, 53, 61, 68, 69, 70, 71], "origin": [0, 3, 4, 7, 21, 51, 54, 61, 72, 73], "consist": [0, 4, 22, 58], "receiv": [0, 4, 21, 31, 36, 53, 54, 55, 56, 58, 72], "original_except": [0, 4, 21], "done": [0, 4, 6, 20, 21, 41, 57, 65], "handle_http_except": 0, "invok": [0, 3, 4, 5, 21, 22, 47, 53, 60, 71], "fall": [0, 4, 22, 28, 39, 58], "back": [0, 4, 28, 39, 41, 47, 51, 53, 57, 58, 68, 72], "routingexcept": [0, 4], "slash": [0, 4, 28, 51, 53], "redirect": [0, 3, 4, 20, 24, 27, 28, 33, 34, 35, 36, 51, 52, 54, 61, 70, 71, 72], "mro": [0, 4], "handle_url_build_error": [0, 4], "url_for": [0, 3, 4, 6, 21, 27, 33, 34, 35, 37, 49, 50, 51, 52, 53, 59, 61, 69, 70, 72, 73], "builderror": [0, 4], "url_build_error_handl": [0, 4], "skip": [0, 4, 53, 54], "being": [0, 1, 3, 4, 5, 6, 7, 18, 20, 21, 29, 40, 53, 54, 55, 57, 59, 66, 71], "built": [0, 4, 5, 9, 13, 14, 16, 20, 21, 24, 37, 53, 62, 63], "keyword": [0, 4, 5, 29, 41, 52, 53, 58, 73], "handle_user_except": 0, "whenev": [0, 5, 20, 46, 55, 58, 59, 64], "occur": [0, 4, 8, 15, 21, 53, 54, 58, 72], "special": [0, 4, 5, 6, 26, 43, 53, 59, 61, 62, 70, 72], "forward": [0, 4, 6, 9, 16, 17, 50, 52, 58], "either": [0, 2, 3, 4, 6, 13, 18, 22, 32, 33, 37, 45, 46, 55, 56, 59, 61, 62, 70, 71, 72], "rerais": [0, 4], "same": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13, 18, 20, 21, 22, 27, 28, 29, 31, 33, 37, 39, 45, 51, 53, 54, 58, 59, 60, 61, 62, 66, 70, 71, 72, 73], "traceback": [0, 4, 7, 8, 54, 56], "form": [0, 4, 6, 20, 24, 26, 27, 34, 35, 36, 37, 43, 51, 53, 55, 61, 68, 69, 70, 71, 72, 73], "show": [0, 3, 4, 5, 7, 8, 13, 14, 15, 21, 22, 24, 25, 31, 37, 41, 53, 55, 56, 59, 61, 62, 64, 68, 69, 70, 71, 72, 73], "bad": [0, 4, 6, 20, 21, 37, 42, 53], "rather": [0, 1, 2, 3, 4, 5, 6, 11, 12, 17, 29, 46, 53, 54, 56, 60, 63, 69, 70, 71, 72], "than": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 16, 17, 20, 21, 46, 47, 51, 53, 54, 55, 56, 60, 63, 68, 69, 70, 71, 72, 73], "gener": [0, 3, 4, 6, 7, 9, 16, 22, 23, 34, 36, 42, 45, 47, 50, 51, 52, 54, 55, 57, 59, 60, 61, 63, 67, 70, 71, 72, 73], "has_static_fold": 0, "inject_url_default": 0, "inject": [0, 24, 25, 46, 50, 51, 53, 55, 59, 72], "hold": [0, 6, 53, 64], "iter_blueprint": 0, "over": [0, 3, 4, 5, 6, 20, 21, 22, 45, 52, 53, 55, 58, 59, 60, 70, 71], "valuesview": 0, "jinja_env": [0, 4, 59], "jinja_environ": 0, "filesystemload": 0, "immutabledict": [0, 4], "easier": [0, 4, 5, 6, 22, 36, 47, 52, 54, 57, 59, 68, 71], "jsonprovid": [0, 4], "json_provider_class": 0, "assign": [0, 7, 22, 41, 50], "afterward": [0, 72], "defaultjsonprovid": 0, "json_decod": [0, 4], "jsondecod": [0, 4], "decod": [0, 4, 37, 62, 71], "json_encod": [0, 4], "jsonencod": [0, 4], "encod": [0, 4, 6, 37], "log_except": 0, "exc_info": 0, "disabl": [0, 4, 6, 8, 53, 56, 59], "logger": [0, 4, 21, 27, 53], "tracebacktyp": 0, "level": [0, 1, 2, 3, 4, 5, 9, 16, 21, 22, 27, 28, 54, 55, 64], "take": [0, 3, 4, 5, 20, 21, 27, 28, 30, 37, 52, 53, 55, 56, 58, 60, 61, 62, 65, 69, 71, 72, 73], "hard": [0, 4, 6, 52, 53, 55, 73], "behavior": [0, 4, 5, 6, 20, 21, 24, 55, 60, 71, 73], "simplifi": [0, 3, 4, 46, 50, 58], "doesn": [0, 4, 6, 7, 20, 22, 60, 61, 62, 63, 64, 65, 69, 70, 71, 72], "check": [0, 2, 3, 4, 5, 7, 9, 16, 25, 27, 34, 41, 50, 53, 54, 60, 61, 62, 65, 68, 71, 72, 73], "ones": [0, 4, 21, 33, 42], "No": [0, 4, 7, 12, 21, 34, 46], "That": [0, 3, 4, 6, 18, 20, 31, 33, 34, 42, 50, 51, 53, 61, 70], "werkzeug": [0, 1, 4, 6, 8, 17, 20, 21, 24, 25, 28, 34, 39, 48, 51, 53, 54, 60, 61, 63, 66, 68, 72], "make_config": 0, "instance_rel": 0, "indic": [0, 1, 7, 21, 22, 25, 26, 54], "make_default_options_respons": [0, 4], "through": [0, 3, 4, 8, 19, 21, 22, 28, 40, 43, 53, 60, 65, 73], "rv": [0, 21, 43, 46, 51, 58], "response_class": [0, 57], "follow": [0, 1, 4, 5, 6, 7, 8, 20, 22, 24, 25, 26, 29, 34, 36, 42, 43, 44, 45, 51, 52, 53, 54, 55, 56, 59, 63, 64, 65, 67, 69, 72, 73], "view_rv": 0, "utf": [0, 4], "bodi": [0, 21, 35, 37, 49, 53, 55, 58, 60, 61, 62, 69, 70, 71], "jsonifi": [0, 2, 3, 4, 6, 21, 22, 37, 44, 53, 55, 73], "d": [0, 10, 11, 12, 13, 18, 19, 53, 61, 73], "overwrit": 0, "exit": [0, 4, 54], "extend": [0, 3, 4, 21, 24, 35, 49, 60, 61, 70, 73], "coerc": 0, "previous": [0, 4, 22], "interpret": [0, 4, 6, 28, 55], "make_shell_context": 0, "shell": [0, 4, 6, 24, 25, 46, 53, 54], "guess": [0, 4, 33, 55], "overridden": [0, 3, 4, 22, 64, 70, 71], "open_instance_resourc": [0, 6], "rb": [0, 60, 71], "write": [0, 1, 2, 5, 6, 11, 12, 15, 20, 22, 25, 27, 28, 31, 33, 39, 50, 52, 53, 54, 58, 60, 61, 62, 64, 67, 69, 70, 71, 72, 73], "within": [0, 1, 2, 3, 4, 5, 25, 29, 53, 59, 70, 71], "subfold": [0, 44], "separ": [0, 3, 4, 5, 6, 20, 22, 27, 28, 31, 35, 37, 45, 52, 53, 60, 61, 62, 72], "io": [0, 2, 4], "read": [0, 3, 6, 7, 9, 13, 15, 16, 18, 19, 21, 22, 23, 31, 34, 37, 43, 46, 51, 52, 53, 55, 57, 60, 62, 63, 69, 71], "schema": [0, 36, 62, 66, 67], "conn": 0, "executescript": [0, 46, 62, 71], "valid": [0, 4, 6, 11, 12, 13, 18, 19, 20, 21, 22, 24, 28, 34, 36, 37, 53, 55, 61, 68, 70, 71, 72, 73], "r": [0, 4, 7, 45, 46], "rt": [0, 4], "patch": [0, 2, 24, 40, 73], "expir": [0, 4, 6, 55], "date": [0, 4], "perman": [0, 4, 6, 34, 55], "surviv": 0, "roughli": 0, "month": 0, "post": [0, 4, 6, 7, 22, 27, 34, 35, 37, 40, 43, 51, 52, 53, 55, 60, 61, 62, 65, 68, 69, 70, 71, 72, 73], "preprocess_request": [0, 57, 60], "url_value_preprocessor": [0, 50], "process_respons": [0, 57], "As": [0, 3, 20, 21, 22, 32, 37, 45, 51, 53, 61, 73], "revers": [0, 4, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 50, 53, 59], "sensibl": [0, 24], "put": [0, 4, 6, 9, 14, 16, 20, 30, 33, 40, 45, 50, 53, 57, 59, 60], "302": [0, 4], "register_blueprint": [0, 3, 4, 5, 22, 29, 61, 72], "record": [0, 3, 27, 35, 53, 58, 60, 71], "url_prefix": [0, 3, 4, 29, 50, 61, 72], "prefix": [0, 3, 4, 6, 9, 16, 21, 22, 28, 35, 39, 50, 51], "url_default": [0, 50], "blueprintsetupst": 0, "callback": [0, 4, 24, 36, 37, 53, 57], "dot": [0, 3, 4, 5, 6, 13, 19, 39, 51, 71], "uniqu": [0, 4, 20, 22, 33, 45, 51, 54, 58, 62], "straightforward": [0, 18, 29, 34, 51, 64], "usag": [0, 4, 6, 23, 36, 43, 52, 57], "request_class": [0, 48], "request_context": [0, 53], "repres": [0, 8, 22, 37, 41, 53], "typic": [0, 1, 5, 6, 21, 22, 52, 54, 60, 62], "own": [0, 3, 4, 5, 6, 7, 11, 12, 13, 14, 18, 20, 21, 22, 23, 27, 28, 30, 50, 51, 53, 54, 58, 59, 61, 65, 68], "wsgi_app": [0, 17, 20, 40, 53, 54], "test_request_context": [0, 4, 53, 54, 57, 60], "detail": [0, 20, 24, 27, 29, 53, 55, 56, 60, 62, 66, 68, 73], "hello": [0, 5, 6, 8, 9, 11, 12, 13, 15, 16, 18, 19, 20, 22, 28, 29, 42, 47, 51, 53, 54, 56, 60, 61, 64, 67, 71, 72], "world": [0, 6, 20, 28, 42, 51, 53, 54, 60, 64, 67, 71, 72], "port": [0, 4, 5, 6, 11, 12, 13, 15, 18, 19, 53, 56, 64], "load_dotenv": [0, 4, 5], "local": [0, 1, 4, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 21, 24, 34, 54, 56, 58, 64, 66, 71], "intend": [0, 3, 4, 14, 28, 56, 58], "meet": [0, 20], "secur": [0, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 24, 25, 34, 53, 56, 59, 63, 72], "flag": [0, 4, 71], "happen": [0, 7, 20, 22, 32, 53, 54, 55, 58, 62, 64], "want": [0, 2, 3, 4, 5, 6, 7, 13, 14, 20, 21, 22, 27, 28, 29, 31, 32, 33, 34, 35, 37, 42, 43, 45, 46, 47, 48, 50, 51, 52, 53, 54, 57, 58, 59, 60, 61, 62, 63, 65, 68, 70, 71], "use_evalex": [0, 28], "screen": [0, 5], "badli": 0, "script": [0, 4, 6, 7, 11, 12, 15, 24, 25, 34, 37, 53, 59], "suppress": 0, "unless": [0, 4, 37, 53, 55, 58, 59], "use_reload": [0, 8, 28], "use_debugg": [0, 8, 28], "won": [0, 1, 5, 20, 22, 27, 37, 53, 55, 62, 63, 69, 71, 72], "becaus": [0, 2, 3, 4, 5, 6, 11, 12, 13, 18, 19, 20, 21, 31, 34, 45, 46, 47, 50, 51, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 66, 70, 72, 73], "hostnam": [0, 4], "listen": [0, 4, 9, 11, 13, 16, 28, 53, 56, 58], "127": [0, 4, 5, 6, 9, 11, 12, 13, 16, 18, 19, 27, 53, 56, 64, 69, 70], "variabl": [0, 3, 4, 13, 19, 20, 21, 24, 25, 37, 42, 46, 58, 59, 60, 61, 71, 72], "present": [0, 4, 5, 20, 21, 53, 54, 55, 56, 59], "webserv": [0, 20, 28, 29, 34], "5000": [0, 5, 6, 28, 53, 56, 64, 69, 70], "nearest": 0, "flaskenv": [0, 4, 5], "directori": [0, 4, 5, 7, 20, 33, 62, 63, 64, 66, 67, 69, 70, 71], "found": [0, 3, 4, 5, 6, 8, 21, 24, 53, 54, 61, 71], "underli": [0, 53, 54], "run_simpl": [0, 28], "instal": [0, 2, 4, 5, 6, 7, 9, 16, 21, 22, 23, 24, 34, 36, 41, 42, 53, 58, 59, 60, 61, 62, 65, 67, 71], "dotenv": [0, 4, 24, 25], "flask_debug": [0, 6], "thread": [0, 2, 4, 19, 24, 28, 45, 53, 54], "secret": [0, 4, 6, 35, 64], "cryptograph": [0, 6, 53, 55], "compon": [0, 3, 4, 24, 32], "sign": [0, 6, 25, 53, 55, 72], "cooki": [0, 4, 6, 25, 32, 35, 63, 72], "complex": [0, 15, 18, 20, 22, 31, 37, 51, 53, 55, 60, 73], "random": [0, 6, 53, 58, 63, 64], "select_jinja_autoescap": 0, "autoescap": [0, 4, 20, 24, 53, 70], "send_static_fil": [0, 4, 44], "session_interfac": 0, "sessioninterfac": [0, 4], "securecookiesessioninterfac": 0, "shell_context_processor": [0, 5], "t_shell_context_processor": 0, "shellcontextprocessorcal": 0, "should_ignore_error": 0, "figur": [0, 6, 20, 28, 39, 50, 53], "out": [0, 3, 4, 5, 6, 9, 16, 20, 25, 26, 28, 33, 34, 39, 41, 50, 53, 55, 59, 61, 63, 65, 66, 68, 70, 71, 72], "far": [0, 20, 39, 61, 66, 68], "system": [0, 4, 6, 9, 16, 21, 24, 25, 32, 35, 39, 45, 49, 51, 53, 56, 59], "concern": [0, 3, 9, 16, 21], "init": [0, 21, 62, 63, 71], "deriv": [0, 26], "ctx": [0, 4, 51, 57], "made": [0, 4, 6, 21, 56, 71, 72], "inact": 0, "manag": [0, 1, 3, 4, 5, 6, 9, 14, 15, 16, 18, 25, 31, 52, 53, 54, 55, 58, 66], "avoid": [0, 3, 4, 5, 22, 25, 32, 33, 53, 54, 61, 65, 73], "might": [0, 3, 4, 6, 9, 21, 22, 23, 28, 34, 35, 37, 39, 45, 47, 49, 50, 52, 53, 55, 57, 58, 61, 62, 65, 66, 67, 68, 69], "surround": 0, "try": [0, 1, 3, 4, 5, 6, 20, 21, 32, 47, 52, 53, 54, 55, 56, 58, 60, 61, 62, 63, 64, 68, 69, 70, 72], "t_teardown": 0, "teardown_appcontext_func": 0, "teardowncal": 0, "destroi": [0, 1, 3, 46], "torn": 0, "down": [0, 4, 32, 45, 57, 60, 62], "disconnect": [0, 58], "teardown_request_func": 0, "template_context_processor": 0, "templatecontextprocessorcal": 0, "t_template_filt": 0, "doubl": [0, 6, 37, 41, 55, 64], "n": [0, 27, 35, 47, 53], "t_template_glob": 0, "is_prim": 0, "rang": [0, 4], "math": 0, "ceil": 0, "sqrt": 0, "t_template_test": 0, "test_cli_runn": [0, 4, 60, 71], "test_cli_runner_class": 0, "flaskclirunn": [0, 60], "clirunn": 0, "Its": 0, "test_client": [0, 4, 54, 58, 60, 71], "use_cooki": 0, "unit": [0, 6, 20, 29, 53, 57, 58, 71], "note": [0, 5, 6, 21, 28, 35, 47, 52, 53, 58], "assert": [0, 4, 28, 53, 58, 60, 71], "propag": [0, 4, 6, 54], "visibl": [0, 4, 22, 27, 56], "assertionerror": 0, "defer": [0, 4, 24, 36, 53, 54], "until": [0, 2, 4, 53, 54, 56, 57, 60, 62, 70], "c": [0, 5, 6, 45, 53, 63, 64], "vodka": 0, "42": [0, 31, 51, 53], "test_client_class": [0, 4], "flaskclient": [0, 4], "customcli": 0, "self": [0, 6, 21, 22, 24, 27, 28, 31, 39, 40, 43, 45, 55, 58, 69, 71], "_authent": 0, "authent": [0, 20, 36, 55, 61, 69, 70], "super": [0, 21, 27, 49], "4": [0, 6, 13, 15, 18, 22, 24, 52, 55, 71], "abil": [0, 4, 6, 21, 34, 59], "mostli": [0, 8, 70], "full": [0, 1, 4, 5, 6, 7, 19, 21, 24, 34, 35, 53, 54, 60, 65], "generate_report": [0, 37, 54], "indent": [0, 4, 6, 70], "environbuild": [0, 4, 60], "doc": [0, 4, 9, 14, 15, 16, 18, 21, 24, 27, 37, 41, 53, 55, 60, 62, 65, 68], "base_url": 0, "append": [0, 37, 53, 58], "url_schem": [0, 4], "scheme": [0, 4, 6, 16, 22], "serial": [0, 4, 6, 37, 53, 55], "content_typ": [0, 21, 60], "posit": [0, 53], "futur": [0, 4, 6, 41, 66, 67, 71], "probabl": [0, 2, 4, 13, 14, 20, 27, 34, 35, 51, 53, 63], "itself": [0, 3, 4, 6, 7, 9, 16, 20, 21, 22, 24, 25, 30, 36, 42, 46, 53, 54, 57, 59, 71, 73], "runtim": [0, 2, 4, 6], "cost": [0, 6, 20], "trap": [0, 4], "help": [0, 3, 4, 5, 7, 13, 19, 20, 22, 23, 27, 33, 41, 42, 50, 53, 55, 56, 58, 65, 73], "update_template_context": 0, "updat": [0, 4, 6, 7, 22, 23, 31, 43, 55, 60, 67, 71, 73], "commonli": 0, "everyth": [0, 1, 20, 21, 31, 34, 42, 54, 55, 61, 64, 66], "decid": [0, 2, 20, 22, 53, 65, 73], "url_default_funct": 0, "urldefaultcal": 0, "t_url_default": 0, "_anchor": 0, "_method": 0, "_scheme": [0, 4], "_extern": 0, "prepend": [0, 72], "email": [0, 7, 21, 23, 24, 31, 37, 45, 52, 53], "includ": [0, 4, 6, 7, 18, 20, 21, 22, 26, 37, 55, 56, 66], "domain": [0, 4, 6, 14, 28, 33, 49], "com": [0, 7, 26, 27, 28, 37, 55], "know": [0, 3, 17, 20, 21, 34, 37, 53, 54, 55, 58, 60, 61, 62, 64, 72, 73], "reason": [0, 3, 20, 22, 32, 34, 42, 57, 58], "unknown": [0, 53], "incorrect": [0, 4, 70, 71, 72], "anchor": [0, 4], "b": [0, 7, 13, 31, 35, 53, 55, 60, 71], "baseconvert": 0, "listconvert": 0, "to_python": 0, "to_url": 0, "join": [0, 4, 6, 33, 34, 47, 61, 64, 71], "url_map_class": [0, 4], "url_rule_class": 0, "preprocessor": 0, "captur": [0, 21, 53, 60, 61, 73], "common": [0, 1, 3, 4, 6, 14, 18, 20, 22, 24, 28, 29, 32, 33, 34, 36, 37, 41, 45, 49, 50, 51, 53, 54, 57, 58, 60, 65, 73], "languag": [0, 20, 25, 32, 50, 62], "everi": [0, 1, 3, 4, 5, 6, 20, 22, 29, 34, 42, 46, 50, 71, 73], "t_url_value_preprocessor": 0, "urlvaluepreprocessorcal": 0, "x": [0, 1, 4, 5, 6, 7, 9, 11, 13, 16, 17, 18, 31, 40, 53, 59, 60, 71], "sendfil": [0, 4, 6], "featur": [0, 2, 4, 6, 7, 9, 13, 15, 16, 18, 19, 20, 25, 34, 36, 37, 51, 61, 65], "view_funct": 0, "start_respons": [0, 28, 40], "__call__": [0, 28, 31, 39, 40], "middlewar": [0, 4, 10, 17, 20, 24, 28, 29, 34, 40, 47], "appli": [0, 2, 4, 14, 17, 20, 22, 26, 37, 51, 53, 55, 59, 72, 73], "lose": [0, 20, 21], "refer": [0, 1, 6, 20, 22, 26, 29, 33, 42, 53, 54, 61, 62, 73], "mymiddlewar": 0, "better": [0, 4, 6, 9, 16, 20, 21, 33, 34, 35, 37, 53, 60], "still": [0, 2, 4, 5, 8, 20, 21, 22, 28, 30, 39, 50, 51, 53, 54, 55, 56, 57, 59, 60, 61, 62, 64, 66, 70, 73], "around": [0, 1, 4, 20, 37, 57, 59, 70], "continu": [0, 2, 4, 8, 20, 37, 53, 56, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72], "event": [0, 4, 10, 20, 22, 24, 26, 54], "accept": [0, 4, 34, 52, 53, 58], "cli_group": [0, 5], "collect": [0, 3, 36, 71], "real": [0, 4, 17, 39, 57, 58, 61, 63, 64], "later": [0, 3, 5, 6, 21, 29, 34, 53, 55, 56, 62, 64, 72], "ahead": [0, 4, 20], "them": [0, 2, 4, 5, 6, 9, 15, 21, 22, 25, 28, 31, 32, 34, 36, 37, 41, 42, 45, 46, 52, 53, 54, 55, 57, 58, 59, 60, 61, 66, 70, 71, 72, 73], "modular": [0, 21, 24, 29, 42], "preced": [0, 3, 21], "search": [0, 3, 7, 22, 23, 53, 68], "lower": [0, 3, 4, 22, 34, 55, 73], "distinct": [0, 4], "nest": [0, 4, 5, 6, 24, 41], "control": [0, 4, 5, 6, 24, 34, 55, 56, 64, 67, 70], "under": [0, 4, 6, 13, 37, 64, 69], "add_app_template_filt": [0, 4], "app_template_filt": [0, 4], "add_app_template_glob": 0, "app_template_glob": 0, "add_app_template_test": 0, "app_template_test": 0, "after_app_request": 0, "Such": [0, 53], "app_context_processor": 0, "app_errorhandl": 0, "app_url_default": 0, "app_url_value_preprocessor": 0, "before_app_first_request": 0, "before_app_request": [0, 4, 72], "make_setup_st": 0, "first_registr": 0, "record_onc": 0, "anoth": [0, 3, 4, 5, 8, 11, 12, 20, 21, 22, 25, 28, 31, 37, 40, 49, 50, 51, 53, 54, 55, 56, 58, 61, 62, 63, 64, 65, 66, 71, 72, 73], "second": [0, 3, 6, 34, 35, 53, 58, 60, 62, 71, 72], "becom": [0, 3, 4, 6, 20, 21, 31, 52, 55, 62, 65, 67], "teardown_app_request": 0, "tear": [0, 4, 57, 60], "populate_request": 0, "shallow": 0, "rememb": [0, 17, 20, 21, 22, 28, 32, 34, 42, 51, 52, 53, 62, 64, 73], "plu": [0, 55], "few": [0, 20, 45, 52, 55, 68, 72], "wsgienviron": 0, "accept_charset": 0, "charsetaccept": 0, "charset": [0, 4], "accept_encod": 0, "term": [0, 7, 39, 54], "compress": [0, 4], "gzip": 0, "accept_languag": 0, "languageaccept": 0, "accept_mimetyp": 0, "mimeaccept": 0, "mimetyp": [0, 4, 6, 33, 53], "access_control_request_head": 0, "preflight": 0, "cross": [0, 4, 24, 34, 59], "access_control_allow_head": 0, "access_control_request_method": 0, "access_control_allow_method": 0, "access_rout": 0, "ip": [0, 4, 8, 9, 11, 12, 13, 16, 18, 19, 27, 53], "address": [0, 4, 5, 7, 11, 12, 13, 16, 17, 18, 19, 27, 52, 53, 64], "last": [0, 4, 22, 61, 69, 72], "proxi": [0, 1, 3, 4, 9, 11, 12, 13, 14, 15, 16, 18, 19, 21, 24, 40, 53], "classmethod": 0, "my_wsgi_app": 0, "14": [0, 4, 66], "caught": [0, 4], "multidict": 0, "pars": [0, 4, 5, 6, 37, 43], "question": [0, 6, 20, 24, 33, 46], "mark": [0, 4, 6, 34, 46, 53, 59, 71], "immutablemultidict": 0, "parameter_storage_class": [0, 48], "necessari": [0, 1, 3, 6, 9, 16, 20, 25, 29, 31, 32, 43, 45, 46, 52, 55, 59, 63], "author": [0, 2, 4, 22, 61, 71], "upward": [0, 5], "parent": [0, 3, 6, 21, 41, 49, 54, 60], "empti": [0, 4, 6, 34, 49, 51, 60, 62, 72], "cache_control": 0, "requestcachecontrol": 0, "statement": [0, 3, 4, 21, 22, 45, 46, 47, 53, 57, 60, 70], "content_encod": 0, "content": [0, 4, 5, 6, 21, 24, 36, 42, 49, 53, 60, 61, 69, 70], "entiti": [0, 59], "field": [0, 5, 27, 41, 52, 70], "media": 0, "thu": [0, 59], "mechan": [0, 34], "obtain": 0, "referenc": [0, 69], "content_length": [0, 6, 40], "length": [0, 4, 52, 72], "size": [0, 4, 34, 35, 53, 67, 69], "had": [0, 4, 22, 34, 73], "content_md5": 0, "md5": 0, "rfc": [0, 4, 53], "1864": 0, "digest": 0, "purpos": [0, 22, 24, 26, 31], "integr": [0, 4, 6, 10, 13, 15, 18, 20, 21, 24, 25, 31, 41, 58, 59], "mic": 0, "good": [0, 1, 6, 9, 16, 20, 26, 30, 34, 35, 37, 42, 46, 51, 54, 55, 58, 65], "accident": [0, 3, 4], "modif": [0, 26], "transit": 0, "proof": 0, "against": [0, 20, 55], "malici": 0, "attack": [0, 4, 25, 46, 53, 55, 63, 72], "recipi": 0, "transmit": [0, 4, 34, 53, 55], "came": [0, 53], "semant": 0, "orig": 0, "822": 0, "timezon": [0, 4], "awar": [0, 4, 21, 22, 53], "dict_storage_class": 0, "encoding_error": 0, "procedur": 0, "combin": [0, 4, 22, 35, 36, 39, 46, 50, 53, 55], "view_arg": 0, "reconstruct": 0, "filestorag": 0, "upload": [0, 4, 20, 24, 31, 36, 55, 60, 68], "input": [0, 5, 25, 34, 35, 43, 51, 52, 53, 55, 61, 69, 70, 71, 72], "save": [0, 5, 33, 34, 41, 53, 58, 59, 60, 61, 64, 72], "enctyp": [0, 34, 53], "multipart": [0, 34, 53, 60], "pleas": [0, 2, 6, 7, 46, 53, 59], "previou": [0, 4, 6, 11, 12, 37, 62, 64], "form_data_parser_class": 0, "formdatapars": 0, "from_valu": 0, "miss": [0, 4, 53, 58, 71], "fill": [0, 49, 55, 61, 70, 72], "small": [0, 4, 6, 15, 18, 21, 24, 34, 42, 62], "simul": [0, 9, 16, 54, 71], "unittest": [0, 4], "etc": [0, 2, 3, 4, 6, 7, 9, 14, 16, 21, 26, 29, 53, 57], "environ_overrid": 0, "full_path": 0, "get_data": [0, 2, 4, 60, 71], "as_text": [0, 60, 71], "parse_form_data": 0, "buffer": [0, 19], "dozen": 0, "megabyt": [0, 34], "memori": [0, 4, 6, 34, 47, 53, 59], "problem": [0, 3, 4, 6, 20, 21, 25, 34, 39, 42, 53, 54, 55, 59], "anyth": [0, 1, 20, 22, 43, 53, 54, 63, 70], "parser": [0, 4], "whole": [0, 3, 4, 20, 50, 53, 59], "exhaust": [0, 14], "get_json": [0, 4], "forc": [0, 4, 20, 55], "silent": [0, 4, 6, 35, 64], "is_json": [0, 4], "on_json_loading_fail": [0, 4], "400": [0, 4, 6, 21, 37, 53, 73], "silenc": 0, "subsequ": [0, 71, 72], "trusted_host": 0, "host_url": 0, "if_match": 0, "etag": [0, 4], "if_modified_sinc": 0, "if_none_match": 0, "if_rang": 0, "ifrang": 0, "if_unmodified_sinc": 0, "unmodifi": 0, "input_stream": 0, "easili": [0, 3, 4, 6, 13, 20, 46, 52, 53, 55, 57, 58], "past": [0, 20, 24], "boundari": 0, "is_multiprocess": 0, "boolean": [0, 6], "spawn": [0, 2, 18, 53], "process": [0, 2, 4, 11, 12, 13, 15, 18, 19, 20, 22, 28, 29, 31, 43, 52, 54, 56], "is_multithread": 0, "multithread": 0, "is_run_onc": 0, "lifetim": [0, 4, 24], "cgi": 0, "guarante": [0, 22, 54, 71], "is_secur": 0, "protocol": [0, 20, 40], "wss": 0, "list_storage_class": 0, "immutablelist": 0, "make_form_data_pars": 0, "instanti": [0, 3, 6, 20, 28, 41, 51], "max_form_memory_s": 0, "maximum": [0, 4, 34], "requestentitytoolarg": [0, 34], "request_data": 0, "max_form_part": 0, "1000": [0, 34], "number": [0, 2, 6, 13, 15, 17, 31, 34, 53], "mani": [0, 2, 4, 6, 11, 12, 13, 14, 17, 18, 20, 22, 23, 34, 36, 41, 45, 52, 53, 60, 63, 65], "max_forward": 0, "max": [0, 4, 6, 52, 55, 69], "trace": [0, 6, 21], "limit": [0, 4, 6, 20, 26, 34, 35, 55, 58, 59], "gatewai": 0, "inbound": 0, "eg": [0, 43, 58], "lowercas": [0, 4, 6, 22, 73], "text": [0, 4, 21, 35, 37, 45, 47, 49, 53, 55, 59, 60, 62, 69, 70, 71], "html": [0, 3, 4, 7, 21, 24, 33, 34, 35, 37, 42, 44, 47, 49, 51, 52, 55, 58, 59, 61, 67, 69, 70, 71, 72, 73], "mimetype_param": 0, "param": 0, "badrequest": [0, 4, 21], "valueerror": [0, 2, 4], "access_control_allow_origin": 0, "pragma": 0, "headerset": 0, "direct": [0, 1, 9, 16, 20, 22, 26, 47, 69, 72], "along": [0, 5, 29, 44, 51, 63, 68], "chain": [0, 17, 32, 37, 54], "viewpoint": 0, "query_str": [0, 60], "raw": [0, 46, 60], "referr": 0, "sic": 0, "benefit": [0, 2, 4, 11, 12, 13, 18, 66], "uri": [0, 55], "although": [0, 4, 20, 37, 63], "misspel": 0, "remote_addr": [0, 8, 27], "remote_us": 0, "protect": [0, 8, 25, 53, 55], "usernam": [0, 3, 6, 7, 21, 27, 34, 35, 37, 39, 46, 52, 53, 55, 60, 61, 62, 70, 71, 72], "mount": [0, 3, 6, 18, 33], "trail": [0, 4, 53], "come": [0, 2, 17, 20, 21, 25, 28, 50, 53, 57, 58, 59, 62, 66], "root_url": 0, "routing_except": 0, "notfound": [0, 21, 28], "someth": [0, 2, 4, 20, 21, 22, 27, 29, 34, 37, 42, 51, 53, 58, 70, 71], "script_root": [0, 37], "unix": [0, 4, 5], "socket": [0, 56], "known": [0, 21, 55, 64, 73], "runtimeexcept": 0, "prevent": [0, 4, 55], "consumpt": 0, "unlik": [0, 3, 15, 61, 68, 70, 73], "guard": 0, "possibl": [0, 2, 3, 4, 6, 7, 11, 12, 13, 14, 18, 19, 20, 21, 22, 26, 27, 29, 30, 31, 32, 33, 35, 37, 40, 46, 51, 53, 55, 59, 60, 71], "consum": [0, 21, 43], "trust": [0, 17, 34, 53], "mean": [0, 1, 2, 3, 4, 5, 11, 12, 13, 14, 18, 19, 22, 24, 35, 39, 53, 54, 57, 59, 61, 65, 66, 70, 73], "whatev": 0, "sai": [0, 21, 30, 42, 55, 58, 64, 73], "behind": [0, 9, 14, 16, 53, 54, 68], "url_charset": 0, "url_root": 0, "url_rul": [0, 39], "inspect": [0, 6, 37], "though": [0, 3, 4, 20, 47, 53, 54, 73], "invalid": [0, 3, 4, 21, 35, 37, 49, 53, 61, 71], "valid_method": 0, "methodnotallow": [0, 21], "never": [0, 20, 21, 31, 34, 39, 46, 53, 55, 58, 72], "bound": [0, 2, 6, 22, 29, 54, 59], "user_ag": 0, "userag": 0, "agent": 0, "user_agent_class": 0, "combinedmultidict": 0, "datastructur": [0, 48], "want_form_data_pars": 0, "carri": [0, 59], "sure": [0, 3, 4, 6, 7, 9, 13, 15, 16, 18, 19, 21, 34, 42, 45, 46, 50, 53, 54, 55, 58, 61, 63, 70, 71], "On": [0, 3, 4, 6, 20, 24, 71, 72], "direct_passthrough": 0, "quit": [0, 5, 20, 34, 53, 64, 68], "don": [0, 3, 4, 5, 6, 7, 11, 12, 13, 18, 19, 20, 21, 22, 27, 29, 31, 34, 37, 39, 45, 50, 53, 54, 55, 57, 58, 61, 66, 70], "yourself": [0, 4, 6, 27, 39, 50, 52, 53, 55, 57], "care": [0, 4, 22, 27, 43, 45, 47, 54, 55, 72], "httpstatu": 0, "accept_rang": 0, "token": [0, 4, 55, 60], "access_control_allow_credenti": 0, "credenti": [0, 6, 35, 53], "share": [0, 3, 22, 56, 70], "javascript": [0, 6, 24, 34, 36, 38, 53, 55, 61, 69], "access_control_expose_head": 0, "access_control_max_ag": 0, "ag": [0, 4, 6, 55], "add_etag": [0, 4], "weak": 0, "sha": 0, "convei": 0, "sender": 0, "estim": 0, "amount": [0, 34, 39, 47, 51, 59], "revalid": 0, "neg": 0, "decim": [0, 4], "identifi": [0, 7, 24, 56], "strictli": [0, 55], "405": [0, 3, 21], "Not": [0, 3, 17, 21, 24, 42, 53, 59, 61, 71], "autocorrect_location_head": 0, "automatically_set_content_length": 0, "responsecachecontrol": 0, "obei": 0, "calculate_content_length": 0, "call_on_clos": 0, "content_languag": 0, "describ": [0, 2, 4, 7, 8, 14, 24, 54, 58, 62], "natur": [0, 43, 68], "audienc": 0, "enclos": 0, "octet": [0, 4], "content_loc": 0, "suppli": [0, 4, 21], "content_rang": 0, "contentrang": 0, "content_security_polici": 0, "contentsecuritypolici": 0, "polici": 0, "layer": [0, 3, 20, 28, 36], "mitig": [0, 55], "content_security_policy_report_onli": 0, "report": [0, 4, 21, 24, 37, 71], "csp": 0, "enforc": [0, 4, 35], "therebi": [0, 4], "cross_origin_embedder_polici": 0, "grant": 0, "permiss": [0, 15, 26, 56], "member": 0, "coep": 0, "enum": 0, "cross_origin_opener_polici": 0, "brows": 0, "coop": 0, "descriptor": [0, 71], "set_data": 0, "default_mimetyp": 0, "default_statu": 0, "200": [0, 4, 53, 57, 58, 60, 71], "delete_cooki": 0, "httponli": [0, 4, 55], "samesit": [0, 4, 6, 55], "via": [0, 2, 6, 33, 52], "disallow": [0, 34], "site": [0, 6, 7, 21, 24, 34, 49, 51, 56, 59], "binari": [0, 4, 18, 26, 37], "unnecessari": [0, 4, 73], "stale": 0, "entri": [0, 4, 5, 7, 22, 31, 45], "normal": [0, 3, 4, 53, 57, 71, 72], "force_typ": 0, "get_respons": [0, 21], "myresponseclass": 0, "especi": [0, 20, 50, 53, 58], "freez": 0, "readi": [0, 20, 53], "pickl": [0, 4], "implicity_sequence_convers": 0, "no_etag": 0, "from_app": 0, "output": [0, 4, 6, 12, 53, 60, 63, 64, 70, 71], "best": [0, 2, 3, 20, 22, 24], "sometim": [0, 3, 21, 28, 32, 35, 43, 47, 53, 59], "edg": 0, "But": [0, 6, 20, 21, 29, 34, 42, 51, 53, 55, 57], "get_app_it": 0, "represent": 0, "flatten": 0, "lead": [0, 21, 59], "unwant": [0, 70], "big": [0, 28, 42, 55, 58, 62], "implicit_sequence_convers": 0, "get_etag": 0, "is_weak": 0, "get_wsgi_head": 0, "copi": [0, 4, 5, 6, 24, 49, 51, 63, 66, 69], "zero": [0, 4], "fix_head": 0, "iri": 0, "attempt": [0, 1, 4, 6, 54, 56], "abl": [0, 4, 20, 22, 34, 55, 58, 65, 73], "get_wsgi_respons": 0, "item": [0, 4, 53, 54, 58, 69, 71, 73], "third": [0, 20], "app_it": 0, "implicit_seqence_convers": 0, "typo": 0, "is_sequ": 0, "is_stream": 0, "sort": [0, 6, 20, 21, 22], "iter_encod": 0, "last_modifi": 0, "believ": 0, "variant": 0, "complet": [0, 2, 4, 6, 22, 24, 30, 53, 59, 61], "identif": 0, "make_condit": 0, "request_or_environ": 0, "complete_length": 0, "noth": [0, 5, 20, 21, 27, 35, 66, 73], "optim": [0, 18, 39], "seekabl": 0, "seek": 0, "iobas": 0, "wrap_fil": 0, "u": [0, 7, 37, 45, 52, 55, 57, 61], "resp": [0, 53], "req": 0, "dictat": 0, "comput": [0, 53, 63, 65], "mandatori": 0, "success": [0, 4, 21, 62], "requestedrangenotsatisfi": 0, "satisfi": 0, "416": 0, "make_sequ": 0, "fix": [0, 4, 7, 27, 61], "veri": [0, 3, 4, 6, 18, 20, 21, 22, 27, 28, 29, 32, 34, 43, 45, 49, 52, 53, 55, 58, 59, 61, 69, 71], "ineffici": [0, 73], "retry_aft": 0, "retri": 0, "503": 0, "servic": [0, 5, 14, 22, 26, 56], "unavail": [0, 57, 59], "long": [0, 2, 6, 7, 31], "set_cooki": [0, 32, 53, 55], "warn": [0, 4, 6, 27, 53, 55], "exce": 0, "float": [0, 53], "timestamp": [0, 62], "per": [0, 4, 6, 11, 12, 22, 28, 50, 68], "span": [0, 69, 70], "readabl": [0, 21], "www": [0, 53, 60], "set_etag": 0, "old": [0, 4, 30, 33, 34, 55], "status_cod": [0, 21, 58, 60, 71], "responsestream": 0, "vari": [0, 4], "fulli": [0, 4, 43, 58, 70], "fresh": 0, "permit": [0, 4, 26], "repli": [0, 53], "www_authent": 0, "wwwauthent": 0, "wai": [0, 1, 2, 3, 4, 6, 18, 20, 21, 22, 26, 27, 29, 30, 32, 33, 34, 35, 37, 40, 41, 42, 45, 50, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 63, 64, 65, 71, 72, 73], "unguess": 0, "pretti": [0, 4, 53], "ordinari": 0, "interest": [0, 6, 7, 34, 50, 51, 59, 68], "Be": [0, 4, 9, 13, 15, 16, 18, 19, 21, 22, 42, 54, 55], "advis": [0, 26, 42], "mutabl": 0, "live": [0, 60], "simpl": [0, 1, 3, 5, 6, 13, 20, 21, 28, 31, 34, 36, 37, 39, 43, 45, 46, 49, 51, 53, 60, 64, 67, 71], "securecooki": 0, "open_sess": 0, "save_sess": 0, "sessionmixin": 0, "mixin": [0, 4], "make_null_sess": 0, "cannot": [0, 2, 3, 4, 21, 29, 37, 53, 54, 55, 58, 60], "fulfil": 0, "nullsess": 0, "complain": [0, 4], "mysessioninterfac": 0, "concurr": [0, 2, 53, 55, 62], "There": [0, 5, 6, 14, 20, 22, 24, 34, 41, 45, 52, 53, 55, 57, 59, 62, 63, 67, 68, 70, 71, 72], "get_cookie_domain": 0, "logic": [0, 2, 3, 4, 32, 50, 53], "get_cookie_httponli": 0, "var": [0, 4, 6, 53, 54, 63], "get_cookie_nam": [0, 4], "get_cookie_path": 0, "get_cookie_samesit": 0, "strict": [0, 6, 26], "lax": [0, 6, 55], "get_cookie_secur": 0, "get_expiration_tim": [0, 4], "is_null_sess": 0, "obj": [0, 4], "null": [0, 62], "ask": [0, 7, 22, 34], "null_session_class": 0, "due": [0, 2, 4, 18, 20, 68], "mainli": [0, 2, 4, 60], "aid": [0, 4], "experi": [0, 6, 8, 24, 29, 53], "job": [0, 49], "lookup": 0, "answer": [0, 47, 53], "likewis": [0, 53], "typecheck": 0, "immedi": [0, 4, 31, 54, 56, 57], "pickle_bas": 0, "decis": [0, 24], "regard": [0, 28], "deal": [0, 4, 21, 34, 46, 53], "should_set_cooki": 0, "backend": [0, 21, 28, 30, 31], "itsdanger": [0, 4, 25, 55, 66, 68], "digest_method": 0, "usedforsecur": 0, "hash": [0, 4, 6, 43, 72], "signatur": [0, 4, 6, 55], "sha1": [0, 43], "key_deriv": 0, "hmac": 0, "securecookiesess": 0, "salt": 0, "taggedjsonseri": [0, 4], "payload": [0, 4, 21, 34], "compact": [0, 4, 6, 69], "session_class": 0, "initi": [0, 1, 3, 4, 6, 23, 24, 29, 36, 56, 57, 59, 71, 72, 73], "reliabl": [0, 4, 6, 34], "v": [0, 71], "els": [0, 1, 2, 3, 20, 21, 27, 28, 35, 37, 46, 50, 51, 53, 54, 61, 63, 64, 70, 72], "written": [0, 15, 22, 26, 61, 70, 71], "setdefault": [0, 4, 50], "insert": [0, 45, 46, 52, 59, 61, 71, 72], "nicer": [0, 31, 46, 52], "clear": [0, 4, 20, 53, 55, 60, 62, 69, 72], "te": 0, "noreturn": 0, "k": [0, 13], "correspond": [0, 1, 3, 4, 25, 53, 54, 61], "keyerror": [0, 53], "popitem": 0, "pair": [0, 58], "lifo": 0, "lack": [0, 20], "expand": [0, 4, 52, 65], "reflect": [0, 6, 20], "_perman": 0, "knowledg": [0, 34], "cleanup": 0, "preset": [0, 4], "environ_bas": 0, "outlin": [0, 9, 13, 15, 16, 18, 19, 20, 45, 55], "chapter": [0, 42], "follow_redirect": [0, 60], "testrespons": [0, 60], "histori": [0, 4, 60], "intermedi": [0, 6], "as_tupl": [0, 4], "filewrapp": 0, "session_transact": [0, 4, 60], "transact": [0, 45], "left": 0, "go": [0, 5, 7, 20, 21, 25, 45, 53, 55, 56, 60, 61, 62, 63, 68, 69, 70, 72], "temporari": [0, 34, 53, 58, 71], "isol": [0, 28, 60, 66], "scriptinfo": [0, 4], "enough": [0, 3, 21, 30, 35, 36, 53], "break": [0, 4, 21, 25, 42, 47, 52, 53], "nutshel": 0, "id": [0, 4, 5, 8, 21, 22, 37, 45, 46, 49, 53, 55, 56, 60, 61, 62, 70, 71, 72, 73], "factori": [0, 1, 4, 5, 11, 12, 13, 15, 18, 19, 20, 21, 22, 24, 28, 31, 36, 46, 60, 61, 62, 63, 72], "pattern": [0, 1, 3, 4, 5, 6, 13, 15, 18, 19, 20, 22, 24, 28, 29, 34, 37, 41, 42, 51, 52, 53, 54, 60, 61, 70, 72, 73], "has_request_context": [0, 4, 27], "advantag": [0, 4, 20, 28, 52, 58, 65], "model": [0, 24, 29, 41, 45, 53, 58, 73], "truth": 0, "copy_current_request_context": [0, 4], "greenlet": [0, 4, 11, 12, 13, 18, 20], "moment": [0, 2, 34], "gevent": [0, 2, 11, 14, 25], "do_some_work": 0, "has_app_context": 0, "baserespons": 0, "util": [0, 3, 4, 6, 34, 39, 41, 53, 60], "tricki": [0, 64], "render_templ": [0, 3, 4, 21, 29, 35, 37, 51, 52, 53, 59, 61, 70, 72, 73], "parachut": 0, "cool": 0, "not_found": [0, 53], "after_this_request": [0, 4, 32], "add_head": 0, "think": 0, "responseclass": 0, "path_or_fil": 0, "as_attach": [0, 4], "download_nam": [0, 4], "bytesio": [0, 4], "craft": [0, 21, 55], "didn": [0, 67, 73], "send_from_directori": [0, 4, 33, 34], "safe": [0, 4, 37, 42, 52, 53, 58, 59, 64, 70, 73], "file_wrapp": 0, "wrapper": [0, 2, 4, 47, 59], "effici": [0, 5, 6, 14, 25, 56, 63, 73], "binaryio": 0, "pointer": 0, "mime": 0, "offer": [0, 8, 20, 22], "public": [0, 4, 5, 53, 63], "attachment_filenam": [0, 4], "disposit": [0, 4, 55], "inlin": [0, 4, 7], "cache_timeout": [0, 4], "inherit": [0, 2, 4, 6, 20, 24, 35, 36, 41, 53, 73], "textiobas": 0, "ascii": [0, 4, 6], "latin": [0, 4], "broader": 0, "compat": [0, 4, 20, 22, 25], "2231": 0, "infer": [0, 3], "filename_or_fp": 0, "unreli": [0, 4, 20], "download_fil": [0, 34], "upload_fold": [0, 34], "safe_join": [0, 4], "escap": [0, 4, 24, 25, 47, 52, 55, 59, 70, 72], "charact": [0, 4, 6, 7, 37, 53, 55, 59, 70], "__html__": 0, "markup": [0, 53, 55, 59], "xml": [0, 4, 20, 53, 59], "em": [0, 53], "lt": [0, 53], "gt": [0, 53], "framework": [0, 2, 20, 23, 24, 25, 44, 55, 58, 60], "href": [0, 21, 33, 35, 49, 55, 61, 70, 71], "bar": [0, 5, 36], "amp": 0, "striptag": [0, 53], "unescap": 0, "whitespac": 0, "space": [0, 3, 4, 6, 9, 16, 21, 54, 69], "raquo": [0, 53], "categori": [0, 4, 36], "get_flashed_messag": [0, 4, 35, 53, 59, 70], "kind": [0, 6, 39, 53, 55], "info": [0, 4, 13, 27, 67], "with_categori": [0, 35], "category_filt": [0, 4, 35], "pull": [0, 7, 23, 50], "tojson": [0, 4, 37], "const": [0, 37], "tosjon": 0, "renderchart": 0, "axis_data": 0, "both": [0, 4, 6, 21, 25, 28, 50, 59, 61, 63, 70, 71], "treat": [0, 4, 6, 9, 16, 20, 53, 54, 60, 64], "arrai": [0, 4, 55], "risk": [0, 4, 8, 53], "ancient": [0, 4], "dump": [0, 4, 21], "fp": 0, "deseri": [0, 60], "anystr": 0, "oper": [0, 3, 4, 9, 16, 18, 25, 41, 53, 56, 57, 62], "least": [0, 6, 30], "weakref": 0, "_app": 0, "uuid": [0, 53], "dataclass": [0, 4], "asdict": 0, "o": [0, 4, 6, 15, 33, 34, 55, 64, 71], "typeerror": [0, 4], "ensure_ascii": [0, 6], "sort_kei": [0, 6], "newlin": [0, 4, 6], "compar": [0, 20, 53, 55, 65, 68, 71, 72], "serializ": [0, 53], "lossless": 0, "compactli": 0, "default_tag": 0, "tagdict": 0, "passdict": 0, "tagtupl": 0, "passlist": 0, "tagbyt": 0, "tagmarkup": 0, "taguuid": 0, "tagdatetim": 0, "bind": [0, 3, 4, 20, 45, 53], "tag_class": 0, "jsontag": 0, "untag": 0, "step": [0, 3, 8, 31, 65, 68, 72, 73], "to_json": [0, 22, 37, 53, 73], "let": [0, 5, 6, 22, 31, 34, 37, 40, 42, 51, 71, 73], "ordereddict": 0, "od": 0, "front": [0, 4, 9, 11, 12, 13, 14, 16, 17, 18, 19, 65], "tagordereddict": 0, "__slots__": 0, "isinst": [0, 21, 51], "iteritem": 0, "template_name_or_list": 0, "render_template_str": [0, 4, 59], "sourc": [0, 3, 6, 21, 22, 24, 71], "stream_templ": [0, 4, 47, 59], "stream_template_str": [0, 4, 47, 59], "get_template_attribut": [0, 4], "template_nam": [0, 51], "macro": [0, 4, 20, 52, 59], "export": [0, 4, 5, 6], "_cider": 0, "endmacro": [0, 52], "popul": [0, 6, 37, 54, 71], "from_pyfil": [0, 4, 6, 29, 64], "yourconfig": 0, "cfg": [0, 6, 71], "Or": [0, 6, 18, 21, 46, 54], "from_object": [0, 6], "uppercas": [0, 6, 31], "from_envvar": [0, 4, 6], "yourapplication_set": [0, 6], "launch": [0, 53], "linux": [0, 5, 7, 9, 16, 25, 56, 63, 71], "window": [0, 4, 5, 6, 7, 9, 13, 15, 16, 18, 19, 25, 37, 55, 56, 63, 70], "variable_nam": [0, 53], "failur": [0, 21], "successfulli": [0, 27, 35, 71], "from_fil": [0, 4, 6], "from_map": [0, 4, 64], "toml": [0, 4, 6], "reader": 0, "upper": [0, 22, 40], "ideal": [0, 3, 6, 53, 55], "from_prefixed_env": [0, 4, 6], "flask_": [0, 4, 6], "drop": [0, 4, 6, 15, 45, 57, 62], "underscor": [0, 6, 22, 41], "__": [0, 6], "_": [0, 16, 22], "get_namespac": [0, 4], "trim_namespac": 0, "subset": 0, "image_store_typ": 0, "image_store_path": 0, "imag": [0, 26, 33, 53, 55, 68, 69], "image_store_base_url": 0, "img": 0, "websit": [0, 22, 33, 45, 52, 55], "image_store_config": 0, "image_store_": 0, "stream_with_context": [0, 4, 47, 59], "generator_or_funct": 0, "disappear": 0, "less": [0, 2, 4, 21, 37, 69, 71], "encount": [0, 2, 3, 65], "leak": [0, 4], "downsid": [0, 3, 6, 29, 39, 45], "streamed_respons": [0, 47], "yield": [0, 4, 47, 58, 59, 60, 71], "evalu": [0, 14, 20, 22, 49], "restor": 0, "similarli": [0, 3, 21, 60, 71], "preserv": [0, 4, 48, 54], "lock": [0, 28], "match_request": 0, "hook": [0, 4, 7, 24, 29, 31, 43], "unbind": 0, "request_ctx": 0, "runtimeerror": [0, 1, 4, 47, 54], "essenti": 0, "app_ctx": 0, "holder": [0, 26], "signals_avail": [0, 1, 54], "blinker": [0, 4, 25], "template_rend": [0, 58], "subscrib": [0, 24], "log_template_rend": 0, "before_render_templ": [0, 4], "request_start": [0, 54, 58], "log_request": 0, "request_finish": [0, 54, 58], "log_respons": 0, "theoret": [0, 55], "securityexcept": 0, "log_security_except": 0, "security_logg": 0, "reli": [0, 4, 8, 47, 58], "close_db_connect": 0, "appcontext_push": [0, 1, 4], "temporarili": [0, 4, 8, 58, 59], "earli": [0, 4, 6, 21, 22, 53, 58], "onto": [0, 4, 5], "contextlib": [0, 58], "contextmanag": [0, 58], "user_set": 0, "connected_to": [0, 58], "And": [0, 3, 21, 35, 39, 42], "testcod": 0, "test_user_m": 0, "john": [0, 46, 53], "me": [0, 34, 41, 53, 60], "appcontext_pop": [0, 1, 4], "message_flash": [0, 4], "dummi": 0, "fake": [0, 17, 20, 54, 57], "fallback": 0, "as_view": [0, 4, 22, 73], "guid": [0, 22, 31, 66], "init_every_request": [0, 4, 73], "class_arg": 0, "class_kwarg": 0, "classvar": 0, "syntax": [0, 4, 13, 19, 20, 37, 56, 59, 70], "bottom": [0, 42, 69], "across": [0, 1, 3, 53, 60, 72], "methodview": [0, 2, 4, 22, 73], "counterapi": 0, "counter": [0, 55], "three": [0, 5, 20, 51, 59, 70, 71], "expos": [0, 3, 4, 20, 53], "angular": [0, 4], "bracket": 0, "show_us": 0, "post_id": [0, 53], "show_post": [0, 53], "target": 0, "definit": [0, 4], "simpler": [0, 4, 37, 65], "301": 0, "abov": [0, 6, 14, 21, 22, 26, 27, 29, 31, 33, 34, 37, 45, 46, 52, 53, 54, 58, 59, 61, 71, 72], "region": 0, "basi": [0, 4, 6], "flaskgroup": [0, 4, 5], "add_default_command": 0, "create_app": [0, 1, 4, 5, 11, 12, 13, 15, 18, 19, 21, 22, 28, 29, 60, 61, 62, 63, 64, 71, 72], "add_version_opt": 0, "set_debug_flag": 0, "appgroup": [0, 5], "advanc": [0, 20, 22, 54], "sens": [0, 2, 6, 22, 45, 50, 59, 61], "with_appcontext": [0, 4, 5], "get_command": 0, "list_command": 0, "subcommand": 0, "appear": [0, 6, 20, 58, 61, 70], "make_context": 0, "info_nam": 0, "kick": [0, 4], "off": [0, 7, 20], "quickli": [0, 3, 6, 45, 52, 53], "context_class": 0, "invoc": 0, "descript": [0, 21, 37, 46, 53, 73], "toplevel": 0, "core": [0, 18, 20, 24], "parse_arg": 0, "attr": 0, "confus": [0, 4], "app_import_path": 0, "plai": [0, 4, 5, 57], "bigger": [0, 67], "role": 0, "onward": [0, 57], "load_app": 0, "overwritten": [0, 4], "earlier": [0, 4, 6, 61, 71, 72], "op": 0, "pass_script_info": 0, "run_command": 0, "stabil": 0, "shell_command": 0, "snippet": 0, "keep": [1, 4, 5, 6, 20, 24, 39, 46, 47, 53, 54, 55, 57, 58, 59, 61, 63, 64, 65, 67, 70, 73], "request": [1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 28, 29, 31, 33, 34, 35, 36, 39, 40, 44, 45, 46, 47, 48, 50, 51, 52, 59, 61, 62, 70, 71, 72, 73], "cli": [1, 4, 5, 22, 24, 56, 62], "command": [1, 4, 6, 8, 15, 19, 22, 24, 25, 29, 42, 53, 55, 62, 63, 64, 71], "function": [1, 2, 3, 4, 5, 6, 13, 20, 21, 22, 23, 24, 28, 29, 30, 31, 32, 34, 35, 37, 39, 42, 45, 46, 47, 48, 50, 51, 52, 53, 54, 57, 58, 59, 60, 61, 62, 64, 69, 71, 72, 73], "object": [1, 3, 4, 5, 6, 21, 22, 24, 27, 28, 29, 31, 32, 34, 36, 37, 39, 40, 41, 42, 43, 46, 47, 50, 51, 54, 57, 58, 59, 60, 61, 62, 63, 71, 72, 73], "us": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 47, 48, 49, 51, 52, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73], "view": [1, 2, 3, 4, 7, 20, 21, 24, 29, 32, 33, 34, 36, 42, 47, 50, 53, 54, 60, 61, 62, 65, 68, 69, 70, 71], "project": [1, 2, 3, 4, 5, 6, 20, 21, 22, 24, 25, 26, 27, 39, 44, 53, 61, 62, 63, 64, 65, 68, 71], "prone": [1, 55], "circular": [1, 4, 22], "issu": [1, 4, 5, 17, 20, 21, 22, 24, 55, 57, 58, 63, 64], "reusabl": [1, 20, 24, 60], "blueprint": [1, 4, 6, 22, 24, 29, 36, 54, 62, 65, 69, 70], "solv": [1, 25, 55], "about": [1, 4, 5, 6, 7, 8, 20, 21, 22, 24, 27, 29, 32, 34, 35, 37, 45, 50, 52, 54, 55, 56, 59, 61, 62, 63, 64, 66, 68, 69, 71, 72], "life": 1, "cycl": [1, 2], "ll": [1, 5, 9, 14, 16, 18, 27, 34, 47, 49, 51, 53, 54, 55, 56, 60, 61, 64, 66, 68, 70, 71, 72, 73], "messag": [1, 4, 5, 7, 21, 24, 27, 36, 52, 54, 56, 60, 61, 62, 64, 70, 71, 72], "interfac": [1, 4, 8, 14, 19, 20, 24, 25, 28, 29, 35, 53, 54, 56, 62], "configur": [1, 4, 5, 7, 11, 12, 13, 14, 15, 17, 18, 19, 20, 23, 24, 28, 29, 33, 36, 45, 53, 55, 56, 59, 60, 62, 64, 70, 71], "somewher": [1, 21, 34, 50, 54], "stand": 1, "global": [1, 4, 7, 21, 22, 24, 37, 53, 54, 59, 64, 66, 73], "appropri": [1, 2, 3, 4, 13, 18, 20, 21, 22, 53], "session": [1, 4, 6, 20, 24, 25, 35, 37, 45, 54, 55, 57, 59, 63, 71, 72, 73], "get_x": 1, "teardown_x": 1, "dealloc": 1, "get_db": [1, 22, 46, 61, 62, 71, 72], "connect_to_databas": 1, "teardown_db": 1, "localproxi": [1, 54], "intern": [1, 4, 6, 21, 22, 24, 28, 39, 48, 53, 54, 71], "rout": [2, 3, 4, 6, 21, 24, 27, 28, 29, 33, 34, 35, 37, 39, 42, 43, 44, 46, 47, 50, 51, 52, 54, 55, 60, 61, 64, 67, 71, 72, 73], "pip": [2, 4, 5, 7, 11, 12, 13, 15, 18, 19, 21, 22, 25, 31, 41, 42, 60, 63, 66, 71], "data": [2, 4, 5, 19, 20, 21, 24, 25, 26, 31, 34, 36, 37, 43, 45, 47, 52, 54, 55, 58, 61, 62, 64, 66, 67, 68, 70, 71, 72, 73], "async_db_queri": 2, "pluggabl": [2, 3, 4, 20, 73], "class": [2, 4, 6, 20, 21, 24, 27, 28, 31, 35, 39, 40, 41, 43, 45, 48, 49, 52, 53, 55, 58, 60, 61, 64, 70, 71], "base": [2, 3, 4, 6, 11, 12, 14, 20, 21, 22, 24, 28, 32, 36, 37, 45, 46, 50, 51, 53, 54, 55, 61, 67, 69, 72], "support": [2, 3, 4, 5, 6, 10, 13, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 28, 30, 31, 33, 40, 47, 53, 55, 58, 59, 62, 63, 70], "bug": [2, 4, 7, 27, 71], "asyncio": [2, 11, 12], "set_wakeup_fd": 2, "upgrad": [2, 4, 7, 55], "eventlet": [2, 12, 14, 25], "applic": [2, 4, 6, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24, 25, 27, 30, 31, 32, 33, 34, 35, 36, 37, 39, 45, 46, 51, 52, 54, 55, 56, 57, 58, 59, 61, 63, 65, 66, 67, 68, 70, 71, 72], "pypi": [2, 4, 11, 12, 13, 18, 22, 23, 25, 31, 45, 52], "respons": [2, 4, 6, 14, 21, 24, 27, 32, 34, 37, 47, 54, 55, 57, 58, 60, 62, 64, 71, 72], "ti": [2, 20, 62], "upsid": [2, 45, 46], "api": [2, 3, 4, 22, 23, 37, 43, 44], "inher": 2, "faster": [2, 4, 25, 34], "benefici": 2, "cpu": [2, 13, 15, 18], "tradit": [2, 20, 37], "nativ": [2, 4], "stage": [2, 6, 31, 54], "haven": [2, 70], "cancel": 2, "create_task": 2, "wish": [2, 35], "queue": [2, 21, 31], "With": [2, 6, 20, 36, 51, 58, 61, 71], "mind": [2, 5, 6, 20, 39, 46, 53, 55, 57, 58, 73], "asgi": [2, 13, 14, 18, 24], "utilis": [2, 10], "asgiref": [2, 10], "wsgitoasgi": [2, 10], "first": [2, 4, 6, 20, 21, 22, 24, 25, 28, 31, 33, 34, 37, 39, 41, 42, 45, 46, 49, 51, 52, 53, 54, 55, 57, 58, 61, 62, 63, 65, 69, 73], "codebas": [2, 20], "reimplement": 2, "websocket": 2, "low": [2, 54], "accomplish": [2, 39, 40, 53, 59], "wherea": 2, "modern": [2, 6, 9, 15, 16, 37, 53, 55], "capabl": [2, 14, 18, 53], "ultim": 2, "understand": [2, 4, 9, 13, 15, 16, 18, 19, 20, 37, 49, 53, 66], "predat": 2, "changelog": [2, 7], "ve": [2, 22, 31, 61, 66, 68, 70, 71], "pr": [2, 4, 7], "At": [2, 32, 36, 43, 46, 72], "greatli": 3, "larg": [3, 4, 20, 24, 28, 35, 36, 45, 47, 52, 59], "construct": [3, 34, 43, 69], "factor": 3, "larger": [3, 6, 7, 28, 34, 42], "sever": [3, 53], "paramet": [3, 4, 5, 6, 21, 48, 50, 53, 59], "unregist": [3, 4, 21], "render": [3, 4, 6, 20, 21, 24, 25, 26, 28, 35, 36, 47, 49, 51, 52, 55, 58, 59, 70, 71, 72, 73], "templatenotfound": [3, 70], "simple_pag": 3, "intent": 3, "option": [3, 4, 6, 13, 15, 18, 19, 21, 24, 35, 37, 39, 40, 42, 53, 54, 56, 58, 59, 60, 61, 63, 66], "obvious": [3, 20, 53, 59], "fact": [3, 20, 37], "child": [3, 36, 69], "gain": [3, 4, 42], "introduc": [3, 4, 5, 6, 20, 21, 50, 53, 56, 58, 66, 71, 73], "testproject": 3, "style": [3, 7, 42, 49, 53, 67, 69, 70, 73], "css": [3, 42, 49, 53, 55, 67, 69, 70], "admin": [3, 5, 21, 24, 29, 35, 45], "rightmost": 3, "blueprint_nam": 3, "prioriti": 3, "our": [3, 7, 21, 22, 34, 53, 60], "reiter": 3, "lai": 3, "yourpackag": 3, "instruct": [3, 4, 5, 6, 7, 14, 23, 56, 63, 67], "print": [3, 4, 6, 41, 46, 53, 54, 58, 63], "goe": [3, 39, 43, 51, 60, 70], "easi": [3, 13, 15, 19, 20, 22, 28, 36, 37, 50, 52, 53, 65], "simpli": [3, 28, 33, 46, 53], "caveat": [3, 8, 21], "strategi": [3, 21, 22], "_handle_api_error": 3, "startswith": [3, 21], "releas": [4, 7], "2022": 4, "08": 4, "router": 4, "4754": 4, "4740": 4, "03": 4, "4732": 4, "01": [4, 71], "4667": 4, "localstack": 4, "4682": 4, "_app_ctx_stack": 4, "_request_ctx_stack": 4, "_extension_name_attr": 4, "flask_env": [4, 6], "4714": 4, "relev": [4, 7, 22, 27, 33], "4716": 4, "4568": 4, "4567": 4, "4569": 4, "json": [4, 6, 24, 36, 38, 43, 73], "4692": 4, "htmlsafe_dump": 4, "refactor": [4, 61], "consolid": 4, "rewrit": 4, "4559": 4, "4571": 4, "4605": 4, "2520": 4, "sub": 4, "3263": 4, "2836": 4, "3108": 4, "2410": 4, "4645": 4, "4629": 4, "templat": [4, 6, 21, 24, 25, 29, 35, 36, 42, 55, 58, 61, 65, 66, 67, 69, 72, 73], "stream": [4, 19, 20, 24, 27, 36, 43, 53], "piec": [4, 43, 47, 55, 59, 60], "test": [4, 5, 6, 11, 12, 20, 22, 24, 26, 29, 45, 53, 54, 57, 58, 61, 64, 65, 66, 67], "4666": 4, "consol": [4, 5, 37, 57], "client": [4, 21, 24, 34, 37, 40, 47, 53, 54, 58, 70, 71], "clean": [4, 22, 60, 62], "4672": 4, "typeddict": 4, "4695": 4, "eager": [4, 53], "lazi": [4, 22], "lazili": [4, 24, 36], "dispatchingapp": 4, "4715": 4, "07": 4, "13": 4, "4606": 4, "relax": 4, "annot": 4, "4600": 4, "closest": 4, "submodul": 4, "4610": 4, "clearer": [4, 22, 61], "4693": 4, "04": 4, "28": 4, "4519": 4, "cert": 4, "4459": 4, "30": [4, 66], "minimum": [4, 22, 25], "importlib_metadata": 4, "4502": 4, "4335": 4, "4008": 4, "4337": 4, "script_info": 4, "from_json": [4, 73], "total_second": 4, "4417": 4, "renam": [4, 42], "period": 4, "3898": 4, "4303": 4, "importlib": 4, "metadata": [4, 22, 45, 66], "setuptool": [4, 5, 7, 42, 66], "4419": 4, "3396": 4, "exclud": [4, 5, 66], "4188": 4, "4460": 4, "4485": 4, "precis": 4, "4095": 4, "4295": 4, "4297": 4, "__exit__": 4, "exitstack": 4, "4474": 4, "url": [4, 6, 20, 21, 22, 24, 27, 28, 34, 36, 51, 55, 60, 61, 64, 70, 71], "4496": 4, "4479": 4, "02": 4, "4341": 4, "revert": 4, "hide": 4, "importerror": 4, "4307": 4, "4349": 4, "4333": 4, "2021": [4, 5, 22], "teardown_": 4, "4104": 4, "4098": 4, "4112": 4, "enhanc": 4, "twice": [4, 53, 70], "4124": 4, "pathlib": [4, 60], "4150": 4, "4157": 4, "correctli": 4, "4096": 4, "4170": 4, "4229": 4, "05": 4, "21": [4, 71], "4019": 4, "4024": 4, "mypi": 4, "4020": 4, "weren": 4, "4040": 4, "4044": 4, "4026": 4, "4041": 4, "4037": 4, "again": [4, 20, 55, 63, 70, 72], "4053": 4, "4078": 4, "focus": [4, 69], "4060": 4, "4069": 4, "1091": 4, "4052": 4, "bump": 4, "pallet": [4, 5, 7, 22, 26], "markupsaf": [4, 25, 47, 53, 66], "celeri": [4, 21, 24, 36], "deprecationwarn": 4, "simplejson": 4, "3555": 4, "3562": 4, "portabl": 4, "get_current_context": 4, "3552": 4, "2741": 4, "dynam": [4, 28, 37, 53, 70], "3369": 4, "favor": 4, "3398": 4, "3431": 4, "ok": [4, 5, 53, 57, 71], "3358": 4, "hoc": 4, "certif": [4, 55], "cryptographi": 4, "pyopenssl": 4, "3492": 4, "flask_app": [4, 5, 31], "3553": 4, "3560": 4, "desir": [4, 21, 37], "3628": 4, "scaffold": 4, "opaqu": 4, "lambda": 4, "3215": 4, "3726": 4, "3579": 4, "3828": 4, "3883": 4, "helper": [4, 24, 39, 52, 57, 58, 59], "3776": 4, "3881": 4, "login": [4, 27, 35, 36, 37, 42, 52, 53, 55, 60, 61, 67, 69, 70, 71], "3907": 4, "3412": 4, "593": 4, "1548": 4, "3923": 4, "3931": 4, "tab": [4, 33, 70], "readlin": [4, 43], "3941": 4, "3962": 4, "hint": [4, 24], "3973": 4, "_compat": 4, "fspath": 4, "4050": 4, "4043": 4, "2020": 4, "3297": 4, "3452": 4, "2019": 4, "json_avail": 4, "3288": 4, "15": 4, "3266": 4, "finalize_request": 4, "2866": 4, "2935": 4, "unprint": 4, "unicod": [4, 6], "2994": 4, "pep": 4, "519": 4, "3059": 4, "partial": [4, 59], "2957": 4, "3163": 4, "3138": 4, "3190": 4, "jsonmixin": 4, "3125": 4, "3022": 4, "3134": 4, "3124": 4, "3195": 4, "3069": 4, "2926": 4, "2937": 4, "signal": [4, 21, 24, 25], "stub": 4, "connect_via": [4, 58], "3208": 4, "2897": 4, "produc": [4, 37, 44, 53, 60, 70, 73], "3111": 4, "1357": 4, "3157": 4, "3214": 4, "make_test_environ_build": 4, "favour": [4, 20], "3232": 4, "ssl": [4, 18], "3211": 4, "3088": 4, "badrequestkeyerror": 4, "3249": 4, "quot": [4, 5, 37, 55], "3074": 4, "451": 4, "pytest": [4, 7, 22, 60, 71], "3275": 4, "stderr": [4, 27], "stdout": [4, 13], "3285": 4, "17": 4, "iso": 4, "8859": 4, "gunicorn": [4, 11, 12, 14], "stricter": 4, "3333": 4, "2766": 4, "2765": 4, "2825": 4, "2933": 4, "unexpect": [4, 8, 53], "2986": 4, "2900": 4, "2018": [4, 71], "backward": [4, 20], "merg": [4, 5, 6, 59], "2748": 4, "2751": 4, "29": 4, "2730": 4, "2736": 4, "2731": 4, "2742": 4, "2735": 4, "flask_skip_dotenv": [4, 5], "2722": 4, "26": 4, "latest": [4, 7, 25], "stabl": [4, 5, 14, 56, 63], "24": [4, 66, 71], "2586": 4, "line": [4, 7, 8, 9, 16, 19, 24, 25, 29, 53, 60, 61, 62, 63, 69, 71], "2193": 4, "1559": 4, "2223": 4, "2017": [4, 41, 54], "1489": 4, "1936": 4, "2254": 4, "1898": 4, "2256": 4, "2259": 4, "bare": 4, "chrome": 4, "2282": 4, "exact": [4, 60], "auto": [4, 69], "make_app": [4, 5, 28, 29], "2297": 4, "2319": 4, "myproject": [4, 25], "dev": [4, 5, 6, 7, 63, 64], "2326": 4, "edit": [4, 5, 7, 9, 16, 22, 60, 61, 63, 65, 66, 71, 72, 73], "2414": 4, "2316": 4, "2314": 4, "2288": 4, "1621": 4, "implicit": [4, 20, 55], "2348": 4, "tag": [4, 23, 33, 34, 37, 49, 51, 55, 59, 63, 68, 70], "2352": 4, "stack": [4, 7, 20, 21, 54], "2354": 4, "2358": 4, "extract": [4, 60], "hierarchi": [4, 21], "travers": 4, "2362": 4, "utc": 4, "2374": 4, "honor": [4, 55], "2373": 4, "2385": 4, "ext": [4, 22, 27, 45], "flask_sqlalchemi": 4, "init_jinja_glob": 4, "error_handl": 4, "request_globals_class": 4, "static_path": 4, "1421": 4, "2412": 4, "2416": 4, "2430": 4, "logger_nam": [4, 6], "logger_handler_polici": [4, 6], "2436": 4, "2450": 4, "2526": 4, "2529": 4, "enotdir": 4, "2581": 4, "2606": 4, "2607": 4, "runner": [4, 5, 24, 71], "2636": 4, "2635": 4, "strip": 4, "2629": 4, "2651": 4, "incom": [4, 6, 9, 14, 16, 17, 21, 24, 34, 43, 72], "8259": 4, "autodetect": [4, 6], "16": [4, 33, 34, 71], "32": [4, 6], "2691": 4, "2693": 4, "theme": [4, 22, 53, 60], "2709": 4, "rewrot": 4, "tutori": [4, 22, 24, 42, 60, 61, 62, 63, 64, 66, 67, 68, 69, 71, 72], "approach": [4, 6, 22, 39, 45, 46, 48, 65], "pitfal": [4, 65], "2676": 4, "pin": [4, 5, 8, 53, 64], "3497": 4, "repackag": 4, "layout": [4, 21, 24, 35, 42, 49, 53, 65, 69], "2728": 4, "2692": 4, "m": [4, 7, 11, 12, 13, 15, 18, 19, 25, 46, 53, 61, 71], "2666": 4, "noappexcept": 4, "2118": 4, "2109": 4, "2152": 4, "auto_pop": 4, "keyboardinterrupt": 4, "2016": 4, "codenam": 4, "punsch": 4, "104": 4, "1849": 4, "loudli": 4, "1988": 4, "1730": 4, "crash": [4, 21, 56], "2006": 4, "pypy3": 4, "1814": 4, "06": [4, 5], "foobar": 4, "1872": 4, "absinth": 4, "refresh": [4, 69], "affect": [4, 6, 11, 12, 22, 25, 37, 54], "workaround": 4, "explicit": [4, 6, 21, 24, 33, 59], "design": [4, 5, 6, 14, 22, 24, 29, 32, 48, 52, 56, 63, 65], "choos": [4, 11, 12, 25, 27, 37, 61, 63], "explain": [4, 24, 34, 53], "wrong": [4, 6, 17, 21, 27], "suit": [4, 7, 18], "reduc": [4, 50], "white": [4, 21, 53, 69], "termin": [4, 5, 15, 21, 24, 46, 62, 64, 71], "convent": [4, 24], "1262": 4, "1288": 4, "1326": 4, "1393": 4, "1422": 4, "guidelin": [4, 24], "turn": [4, 21, 72], "1515": 4, "1484": 4, "1763": 4, "1728": 4, "leav": [4, 33, 64], "linger": 4, "broken": 4, "test_appcontext_sign": 4, "attributeerror": 4, "find_packag": [4, 66], "is_packag": 4, "enter": [4, 67, 70], "flip": [4, 6], "potenti": [4, 32], "danger": [4, 34, 55, 61, 69], "2013": 4, "j": [4, 41], "broke": 4, "peopl": [4, 20, 45, 51, 55], "verif": 4, "incorrectli": [4, 55], "limoncello": 4, "impact": 4, "famili": [4, 69], "html5": 4, "slightli": [4, 35], "network": [4, 14, 21, 53], "got": 4, "localhost": [4, 6, 9, 16, 28, 31, 45, 56], "googl": [4, 7, 14, 39], "flash": [4, 24, 34, 36, 52, 61, 69, 70, 72], "reintroduc": 4, "trivial": 4, "strongli": [4, 6], "flaw": 4, "prepar": 4, "halfwai": 4, "distinguish": [4, 33, 70], "trash": 4, "seed": [4, 6], "builtin": [4, 24, 53, 58, 59], "account": [4, 7, 20], "2012": 4, "campari": 4, "shut": [4, 45], "garbag": 4, "collector": 4, "cpython": 4, "themselv": [4, 6], "tool": [4, 6, 7, 8, 20, 22, 24, 56, 63, 66, 71], "programmat": 4, "zip": 4, "archiv": 4, "egg": [4, 23, 67], "prior": [4, 26], "myhost": 4, "myport": 4, "msg": [4, 35], "storag": [4, 21, 48], "creation": [4, 28, 29, 42], "registr": [4, 24, 52, 62, 64, 72], "undocu": 4, "2011": 4, "09": 4, "rakija": 4, "opt": [4, 59], "feedback": [4, 35, 53], "forget": [4, 53], "malform": [4, 53], "incompat": 4, "conceptu": 4, "perfect": [4, 6, 22, 28, 57], "testclient": 4, "finer": 4, "virtual": [4, 24, 63, 66, 67], "odd": 4, "runawai": 4, "list_templ": 4, "involv": [4, 14, 21, 22], "infinit": 4, "grappa": 4, "alter": [4, 5, 20], "unbound": 4, "hand": [4, 6, 20, 46, 57, 59], "jython": 4, "alon": 4, "create_jinja_load": 4, "regardless": 4, "achiev": [4, 34], "unpack": 4, "hub": 4, "timeout": [4, 51], "remot": [4, 7, 8, 17, 27], "2010": [4, 26, 49], "download": [4, 7, 34, 45], "backslash": 4, "27": [4, 5], "whiski": 4, "gae": 4, "yml": 4, "suppos": 4, "customiz": 4, "calvado": 4, "inabl": [4, 59], "htm": [4, 53, 59], "xhtml": [4, 53, 59], "emit": [4, 21, 58], "rare": 4, "led": [4, 60], "18": 4, "rakia": 4, "di": [4, 46], "littl": [4, 6, 34, 45, 46, 51, 52, 55], "switch": [4, 6, 11, 12, 62], "unus": 4, "leftov": 4, "git": [4, 7, 67], "pdf": [4, 34], "pyc": [4, 42, 66, 67], "schnap": 4, "mail": [4, 21, 27], "germeist": 4, "bugfix": 4, "appengin": 4, "preview": 4, "told": [5, 17, 55], "varieti": [5, 20], "parenthes": 5, "demonstr": [5, 44, 59], "src": [5, 55], "app2": 5, "liter": 5, "press": [5, 53, 64], "ctrl": [5, 53, 64], "conveni": [5, 53, 58, 62, 63, 64], "particularli": [5, 14, 56, 63], "program": [5, 18, 20, 21, 27, 31, 53, 56, 64], "oserror": [5, 53, 56, 64], "errno": [5, 53, 56, 64], "98": [5, 53, 56, 64], "winerror": [5, 53, 56, 64], "10013": [5, 53, 56, 64], "restart": [5, 53, 64], "inotifi": 5, "223": 5, "456": 5, "919": 5, "file1": 5, "dira": 5, "file2": 5, "dirb": 5, "8000": [5, 9, 11, 12, 13, 16, 18], "fnmatch": 5, "explor": [5, 7], "oct": 5, "59": 5, "51": 5, "gcc": 5, "home": [5, 15, 34, 66, 67, 71], "david": 5, "flask_opt": 5, "flask_command_opt": 5, "flask_run_port": 5, "deploy": [5, 6, 22, 53, 56, 63], "commit": [5, 6, 7, 37, 45, 46, 61, 64, 71, 72, 73], "repositori": [5, 7, 22, 26, 65], "privat": [5, 14], "scan": 5, "bash": [5, 6], "fish": [5, 6], "cmd": [5, 6], "powershel": [5, 6], "tip": 5, "venv": [5, 7, 11, 12, 13, 15, 18, 19, 25, 63, 67], "bin": [5, 7, 11, 12, 13, 15, 18, 19, 25], "bat": 5, "ps1": 5, "wherev": 5, "create_us": 5, "organ": [5, 22, 67, 70, 72], "user_cli": 5, "add_command": [5, 62], "demo": 5, "overview": [5, 24, 25, 35, 53, 63, 65, 68], "bp": [5, 50, 61, 72], "student": 5, "alic": 5, "do_work": 5, "my": [5, 20, 24, 35, 49, 73], "entry_point": 5, "flask_my_extens": 5, "wiki": [5, 53], "cl": 5, "console_script": 5, "profession": 5, "commun": [5, 22, 24, 53], "besid": [5, 20, 22, 53, 69, 70], "menu": 5, "button": [5, 7, 61, 70], "select": [5, 34, 45, 46, 61, 71, 72], "dropdown": 5, "uncheck": 5, "pythonpath": 5, "accur": 5, "toggl": 6, "independ": [6, 22, 25, 54, 64], "192b9bdd22ab9ed4d12e236c78afcb9a393ec15f71bbf5dc987d54727823bcbf": [6, 53, 63], "inconsist": 6, "begun": 6, "facilit": 6, "unset": 6, "token_hex": [6, 53, 63], "reveal": 6, "underneath": 6, "restrict": [6, 55], "older": [6, 34, 55, 70], "2678400": 6, "bandwidth": [6, 14, 37], "apach": [6, 11, 12, 13, 14, 15, 18, 19], "recogn": [6, 55], "script_nam": 6, "implic": 6, "alphabet": 6, "matter": [6, 61, 66, 67, 72, 73], "human": [6, 21], "preserve_context_on_except": 6, "default_set": 6, "letter": 6, "choic": 6, "flask_secret_kei": 6, "5f352379324c22463451387a0aec5d2f": 6, "flask_mail_en": 6, "equal": [6, 41, 55], "flask_myapi__credentials__usernam": 6, "user123": 6, "myapi": 6, "myapi__credentials__usernam": 6, "insensit": 6, "dedic": [6, 9, 14, 16, 33], "dynaconf": 6, "mention": [6, 51, 53, 55], "harder": [6, 20], "100": [6, 18, 21, 60, 71], "solut": [6, 22, 36, 37, 50, 51, 53], "coupl": [6, 29, 34, 52, 55, 58, 59], "reconfigur": [6, 31], "init_app": [6, 22, 23, 29, 62], "easiest": [6, 30, 49, 53, 57, 71], "popular": 6, "django": [6, 28, 45], "yourapplication_mod": 6, "productionconfig": 6, "database_uri": 6, "mysql": 6, "developmentconfig": 6, "sqlite": [6, 22, 24, 36, 45, 53, 62, 64], "tmp": [6, 45], "testingconfig": 6, "configmodul": 6, "import_str": [6, 39], "db_server": 6, "192": 6, "168": 6, "56": 6, "cap": 6, "19": 6, "touch": 6, "virtualenv": [6, 7, 11, 12, 13, 15, 18, 19, 24, 63], "fabric": 6, "unfortun": [6, 22, 51, 55], "concept": [6, 14, 20, 22, 24, 50, 55, 59, 68], "uninstal": 6, "myapp": [6, 29, 37, 41], "lib": 6, "pythonx": 6, "y": [6, 55, 61], "usr": 6, "sy": [6, 27], "preload": 6, "tracker": 7, "channel": 7, "discord": [7, 22], "chat": [7, 22], "gg": 7, "overflow": 7, "stackoverflow": 7, "github": [7, 21, 22], "discuss": [7, 14, 20, 22, 37], "minim": [7, 20, 24], "reproduc": [7, 26], "sidebar": 7, "black": [7, 21, 53], "docstr": 7, "72": 7, "rst": 7, "versionchang": 7, "fork": 7, "clone": [7, 22], "cd": [7, 11, 12, 13, 15, 18, 19, 25, 67], "maco": [7, 25, 56], "python3": [7, 25], "txt": [7, 34, 53], "branch": [7, 71], "fetch": [7, 24, 36, 38, 46, 61], "checkout": 7, "favorit": 7, "editor": [7, 67], "123": 7, "upstream": 7, "suffici": 7, "ci": 7, "tox": [7, 22], "htmlcov": [7, 67, 71], "sphinx": 7, "_build": 7, "sentri": [8, 21], "notif": [8, 21, 58], "breakpoint": 8, "major": [8, 20, 53], "power": [8, 22, 31, 49, 53, 68], "machin": [8, 63], "interfer": [8, 22, 56], "fast": [9, 16, 18], "tl": [9, 16], "acquir": [9, 16], "bui": [9, 16], "registrar": [9, 16], "pai": [9, 16], "conf": [9, 16, 31], "comment": [9, 16, 55, 68], "documentroot": 9, "loadmodul": 9, "proxy_modul": 9, "mod_proxi": 9, "proxy_http_modul": 9, "mod_proxy_http": 9, "proxypass": 9, "requesthead": 9, "proto": [9, 16], "uncom": 9, "loop": [10, 18, 20, 24, 35, 61, 70], "asgi_app": 10, "hypercorn": 10, "asynchron": [11, 12, 13, 18, 20], "task": [11, 12, 20, 24, 36, 53, 65, 68], "consider": [11, 12, 24, 59], "80": [11, 12, 13, 15, 16, 18, 19], "443": [11, 12, 13, 15, 18, 19], "nginx": [11, 12, 13, 14, 18, 19, 53], "httpd": [11, 12, 13, 14, 15, 18, 19], "privileg": [11, 12, 13, 15, 18, 19], "section": [11, 12, 14, 16, 20, 24, 37, 53, 59, 64, 70], "bypass": [11, 12, 13, 18, 19], "navig": [11, 12, 13, 18, 19, 53, 72], "uwsgi": [12, 14], "wsgiserv": 12, "pywsgi": 12, "http_server": 12, "serve_forev": 12, "pure": [13, 19], "tune": 13, "tend": [13, 22, 47], "platform": [13, 17, 18, 24, 63, 71], "wsl": [13, 18], "compil": [13, 15, 18, 19], "module_import": 13, "app_vari": 13, "w": [13, 18], "20": [13, 18], "boot": 13, "pid": [13, 18], "aren": [13, 15, 19, 55], "logfil": 13, "spec": [13, 18], "publicli": [14, 22, 53, 63], "million": [14, 55], "outgo": [14, 72], "primari": [14, 62], "goal": 14, "familiar": [14, 22, 53, 62, 65], "waitress": [14, 63], "mod_wsgi": 14, "safer": [14, 21], "free": [14, 20, 21, 59], "tier": 14, "pythonanywher": 14, "heroku": 14, "cloud": 14, "aw": [14, 50, 51], "elast": 14, "beanstalk": 14, "microsoft": [14, 33], "azur": 14, "price": 14, "express": [15, 21, 26, 47, 53, 55, 70], "tightli": 15, "sudo": 15, "proxy_pass": 16, "proxy_set_head": 16, "proxy_add_x_forwarded_for": 16, "intercept": [17, 55], "perspect": 17, "proxy_fix": [17, 53], "proxyfix": [17, 53], "x_for": 17, "x_proto": 17, "x_host": 17, "x_prefix": 17, "beyond": [18, 22, 24], "difficult": [18, 22, 55, 60], "beginn": 18, "pyuwsgi": 18, "precompil": 18, "wheel": [18, 63, 66], "sdist": [18, 22], "master": 18, "p": [18, 21, 26, 35, 47, 49, 52, 53, 56, 59, 61], "64bit": 18, "prefork": 18, "mod_proxy_uwsgi": 18, "possibli": 18, "addr": 18, "8080": [19, 63], "rever": 19, "curiou": 20, "surpris": 20, "comparison": 20, "hypothetical_flask": 20, "microframework": 20, "alloc": 20, "freed": 20, "ly": 20, "hack": 20, "outstand": 20, "wors": 20, "furthermor": [20, 50], "declar": [20, 36, 41], "fire": [20, 24], "undefin": [20, 58], "ambigu": 20, "awai": 20, "bundl": [20, 25], "surfac": 20, "genshi": 20, "xpath": 20, "mako": 20, "abstract": [20, 28, 36], "scienc": 20, "too": [20, 22, 27, 35, 55, 68], "undertak": 20, "fit": [20, 22, 23, 26], "certainli": 20, "nor": [20, 26], "aim": 20, "numer": 20, "technologi": 20, "shouldn": [20, 63, 64], "rubi": 20, "side": [20, 28, 52, 53], "rack": 20, "rendit": 20, "nearli": 20, "land": 20, "webob": 20, "formerli": 20, "recent": [20, 41, 45, 61], "infrastructur": 20, "ye": [20, 34], "bright": 20, "troubl": 20, "quick": [20, 39, 42, 59], "compromis": 20, "overhead": 20, "eventu": 20, "bridg": 20, "grow": [20, 64], "glue": 20, "persist": [20, 53], "agnost": 20, "foundat": 20, "sooner": 21, "perfectli": 21, "fine": [21, 42], "overload": 21, "harddriv": 21, "sampl": [21, 60], "face": [21, 55], "3rd": [21, 55], "parti": [21, 55], "critic": 21, "overwhelm": [21, 67], "hit": 21, "aggreg": 21, "duplic": [21, 61], "frequenc": 21, "threshold": 21, "sdk": 21, "sentry_sdk": 21, "flaskintegr": 21, "your_dsn_her": 21, "dsn": 21, "rq": 21, "fashion": 21, "499": 21, "599": 21, "handle_bad_request": 21, "interchang": 21, "insufficientstorag": 21, "507": 21, "handle_507": 21, "unallow": 21, "chosen": [21, 63, 64], "connectionrefusederror": 21, "connectionerror": 21, "carefulli": 21, "seem": [21, 43], "500_gener": 21, "respect": [21, 55], "uncaught": 21, "fortun": [21, 43], "handi": [21, 29, 46, 53, 57], "fanci": 21, "profil": [21, 37, 47, 53, 55], "jack": 21, "user_profil": 21, "get_us": [21, 27], "config_filenam": [21, 29], "titl": [21, 22, 34, 35, 41, 49, 53, 61, 62, 68, 70, 71], "endblock": [21, 35, 49, 61, 70], "h1": [21, 34, 35, 49, 53, 61, 69, 70], "nice": [21, 29, 51, 53], "wouldn": [21, 22], "oop": 21, "mistak": 21, "sorri": 21, "internal_server_error": 21, "blog": [21, 22, 24, 55, 60, 65, 67, 69, 70, 72], "method_not_allow": 21, "realis": 21, "techniqu": [21, 24, 28, 60, 61], "resource_not_found": 21, "chees": 21, "get_one_chees": 21, "get_resourc": 21, "invalidapiusag": 21, "to_dict": 21, "invalid_api_usag": 21, "420": 21, "user_api": 21, "publish": [22, 23], "learn": [22, 31, 61, 62, 64, 65, 68], "anyon": [22, 26], "feel": 22, "collabor": 22, "suffix": 22, "word": 22, "dash": 22, "flask_nam": 22, "flask_name_low": 22, "combonam": 22, "flask_combonam": 22, "name_flask": 22, "helloextens": 22, "elsewher": [22, 58, 63], "ergonom": 22, "connection_class": 22, "phase": 22, "collid": 22, "_hello_user_id": 22, "simplenamespac": 22, "_hello": 22, "reqeust": 22, "simpleblog": 22, "postapi": 22, "blogextens": 22, "column": [22, 45, 49, 62, 69], "primary_kei": [22, 45], "nullabl": 22, "post_model": 22, "api_view": 22, "simple_blog": 22, "conform": 22, "basepost": 22, "bit": [22, 31, 34, 36, 42, 45, 51, 57, 65, 68], "tradeoff": 22, "luckili": 22, "approv": 22, "qualiti": 22, "becam": 22, "todai": 22, "ecosystem": 22, "transfer": 22, "eco": 22, "mainten": 22, "oversight": 22, "extensionnam": 22, "flask_extension_nam": 22, "licens": [22, 24], "bsd": [22, 24], "mit": 22, "characterist": 22, "ship": [22, 46], "nox": 22, "distribut": [22, 25, 26, 63, 66], "readm": 22, "offici": [22, 31, 41, 45, 53, 59, 65, 66], "particular": [22, 26, 65, 71], "python_requir": 22, "decemb": 22, "entir": [23, 28, 37, 55, 70], "consult": [23, 27, 34, 54], "foo_bar": 23, "baz": 23, "foo_spam": 23, "quickstart": [24, 25, 65, 68], "toolkit": 24, "coverag": [24, 60, 65, 66, 67], "fixtur": 24, "practic": 24, "subscript": 24, "discoveri": 24, "plugin": [24, 34], "pycharm": 24, "wtform": [24, 36], "mongodb": [24, 36], "mongoengin": [24, 36], "favicon": [24, 36], "checksum": [24, 36], "background": [24, 35, 36, 54, 69], "xss": [24, 34, 59], "forgeri": 24, "csrf": 24, "quart": 24, "micro": 24, "contribut": 24, "submit": [24, 34, 35, 37, 52, 53, 55, 61, 69, 70, 72], "claus": 24, "artwork": 24, "newer": [25, 40], "untrust": [25, 53, 55], "watchdog": 25, "mkdir": [25, 64, 67], "prompt": 25, "copyright": [26, 49], "redistribut": 26, "met": [26, 71], "notic": [26, 39, 51, 52, 53, 58, 62, 71], "disclaim": 26, "materi": 26, "neither": [26, 55], "contributor": 26, "endors": 26, "promot": 26, "softwar": [26, 63], "BY": [26, 61], "THE": 26, "AND": 26, "AS": 26, "OR": 26, "impli": [26, 52], "warranti": 26, "BUT": 26, "NOT": [26, 62], "TO": 26, "OF": 26, "merchant": 26, "FOR": 26, "IN": 26, "NO": 26, "shall": 26, "BE": 26, "liabl": 26, "indirect": 26, "incident": 26, "exemplari": 26, "consequenti": 26, "damag": 26, "procur": 26, "substitut": 26, "loss": 26, "profit": 26, "busi": 26, "interrupt": 26, "ON": [26, 61], "theori": 26, "liabil": 26, "contract": 26, "tort": 26, "neglig": 26, "aris": 26, "IF": [26, 62], "SUCH": 26, "logo": [26, 69], "svg": 26, "png": [26, 34, 37, 60], "appreci": 26, "palletsproject": 26, "medium": 26, "check_password": 27, "password": [27, 35, 52, 53, 62, 70, 71, 72], "login_us": 27, "401": [27, 53, 61], "soon": 27, "dictconfig": 27, "formatt": 27, "asctim": 27, "levelnam": 27, "streamhandl": 27, "wsgi_errors_stream": 27, "default_handl": 27, "removehandl": 27, "went": [27, 53], "proactiv": 27, "smtphandler": 27, "higher": 27, "mail_handl": 27, "mailhost": 27, "fromaddr": 27, "toaddr": 27, "subject": 27, "setlevel": 27, "setformatt": 27, "addhandl": 27, "smtp": 27, "requestformatt": 27, "simplest": [27, 37], "getlogg": 27, "other_packag": 27, "fundament": 28, "hello_world": [28, 53], "__main__": [28, 56], "dispatchermiddlewar": 28, "frontend_app": 28, "backend_app": 28, "realli": [28, 29, 33, 35, 50, 51, 53, 58], "deleg": 28, "subdomaindispatch": 28, "get_appl": 28, "endswith": 28, "len": [28, 58, 60], "rstrip": 28, "http_host": 28, "myapplic": [28, 53], "get_user_for_subdomain": 28, "pop_path_info": 28, "peek_path_info": 28, "pathdispatch": 28, "default_app": 28, "creator": 28, "get_user_for_prefix": 28, "imagin": [29, 34, 39, 42, 51, 53, 55], "Of": 29, "cours": [29, 33, 52], "index_templ": 29, "local_auth": 29, "clever": [29, 61], "slow": [30, 37, 62], "throw": 30, "speed": [30, 59], "minut": [30, 51, 55, 73], "finish": [31, 61, 62], "multi": 31, "schedul": 31, "make_celeri": 31, "celery_config": 31, "contexttask": 31, "broker": 31, "migrat": 31, "togeth": [31, 45, 54], "redi": 31, "broker_url": 31, "6379": 31, "result_backend": 31, "add_togeth": 31, "23": [31, 71], "65": 31, "jump": 31, "disappoint": 31, "your_appl": 31, "principl": [32, 34], "complic": [32, 49], "awkward": 32, "anywher": [32, 55, 66], "detect_user_languag": 32, "user_lang": 32, "guess_language_from_request": 32, "remember_languag": 32, "icon": 33, "bookmark": 33, "brand": 33, "pixel": 33, "ico": 33, "de": 33, "facto": 33, "luck": 33, "redirect_to": 33, "vnd": 33, "articl": [33, 55, 61], "wikipedia": [33, 55], "ah": 34, "bootstrap": 34, "secure_filenam": [34, 53], "allowed_extens": 34, "jpg": 34, "jpeg": 34, "gif": 34, "php": 34, "who": [34, 72], "allowed_fil": 34, "rsplit": [34, 39], "upload_fil": [34, 53], "doctyp": [34, 35, 49, 53, 70], "forg": [34, 53], "someon": [34, 55], "bashrc": 34, "he": 34, "she": 34, "hacker": [34, 53], "patient": 34, "home_username_": 34, "build_onli": 34, "tempfil": [34, 71], "gettempdir": 34, "happili": 34, "unlimit": 34, "413": 34, "ago": 34, "chunk": [34, 59], "poll": 34, "jqueri": [34, 37], "eas": 34, "almost": 34, "fledg": 34, "hate": [35, 42, 53], "_5": [35, 53], "y2l": [35, 53], "f4q8z": [35, 53], "xec": [35, 53], "magic": 35, "ul": [35, 52, 69, 70], "li": [35, 52, 69, 70], "endfor": [35, 52, 59, 61, 70], "endif": [35, 52, 53, 61, 70], "endwith": 35, "strong": [35, 53], "dl": [35, 52], "dt": [35, 52], "dd": [35, 52], "red": 35, "div": [35, 37, 49, 61, 69, 70], "alert": [35, 53, 55], "internation": 36, "demand": 36, "gentl": [36, 42], "introduct": [36, 42, 53, 59], "progress": 36, "heard": 37, "ajax": 37, "xmlhttprequest": 37, "focu": 37, "imposs": 37, "unsaf": [37, 55], "syntaxerror": 37, "chart_data": 37, "chartlib": 37, "makechart": 37, "chart": 37, "user_url": 37, "current_us": 37, "promis": 37, "mdn": [37, 53], "room_url": 37, "room_detail": 37, "room": 37, "formdata": 37, "talk": 37, "stick": 37, "stringifi": 37, "showloginerror": 37, "geologi": 37, "geology_fact": 37, "geology_url": 37, "geology_div": 37, "getelementbyid": 37, "innerhtml": 37, "user_detail": [37, 73], "get_or_404": [37, 41, 73], "pictur": [37, 60], "user_list": [37, 73], "order_bi": 37, "base64": 37, "user_upd": 37, "update_from_json": [37, 73], "obsolet": 38, "upfront": [39, 57], "suddenli": [39, 53], "outgrow": 39, "somewhat": 39, "trick": [39, 47, 55, 57], "cached_properti": 39, "lazyview": 39, "__module__": 39, "keystrok": 39, "total": [40, 71], "violat": 40, "httpmethodoverridemiddlewar": 40, "allowed_method": 40, "frozenset": 40, "bodyless_method": 40, "http_x_http_method_overrid": 40, "request_method": 40, "mapper": [41, 45], "mongodb_set": 41, "flask_mongoengin": 41, "mongo": 41, "movi": 41, "stringfield": [41, 52], "year": [41, 54], "intfield": 41, "rate": 41, "director": 41, "actor": 41, "listfield": 41, "embeddeddocu": 41, "embed": [41, 55], "embeddeddocumentfield": 41, "imdb": 41, "imdb_id": 41, "decimalfield": 41, "vote": 41, "bttf": 41, "1985": 41, "michael": 41, "fox": 41, "christoph": 41, "lloyd": 41, "tt0088763": 41, "concaten": 41, "some_theron_movi": 41, "actors__in": 41, "charliz": 41, "theron": 41, "year__gt": 41, "naiv": 42, "startup": 42, "inner": [42, 47], "include_package_data": [42, 66], "install_requir": [42, 66], "restructur": 42, "checklist": 42, "programm": 42, "divid": 42, "smaller": [42, 59], "topic": [42, 55], "preprocess": 43, "inconveni": 43, "hashlib": 43, "checksumcalcstream": 43, "_stream": 43, "_hash": 43, "size_hint": 43, "generate_checksum": 43, "before_request_handl": 43, "special_api": 43, "hexdigest": 43, "spa": 44, "heartbeat": 44, "healthi": 44, "catch_al": 44, "encourag": [45, 58], "four": [45, 49], "effort": 45, "tabl": [45, 57, 61, 71], "create_engin": 45, "orm": 45, "scoped_sess": 45, "sessionmak": 45, "declarative_bas": 45, "db_session": [45, 52], "autocommit": 45, "autoflush": 45, "query_properti": 45, "create_al": 45, "wonder": [45, 53], "sqlite3": [45, 46, 62, 71, 72], "shutdown_sess": 45, "__tablename__": 45, "50": 45, "120": 45, "__repr__": 45, "versu": 45, "flexibl": [45, 51, 65], "shutdown": [45, 57], "autoload": 45, "con": 45, "getattr": 46, "_databas": 46, "close_connect": 46, "flight": 46, "cur": 46, "cursor": 46, "truli": 46, "row": [46, 47, 62, 72], "make_dict": 46, "idx": 46, "enumer": 46, "row_factori": [46, 62], "namedtupl": 46, "firstnam": 46, "lastnam": 46, "middleiniti": 46, "query_db": 46, "fetchal": [46, 61, 72], "pleasant": [46, 57], "the_usernam": 46, "enorm": 47, "fly": 47, "roundtrip": 47, "csv": 47, "generate_large_csv": 47, "iter_all_row": 47, "timelin": [47, 59], "immutableorderedmultidict": 48, "myrequest": 48, "myflask": 48, "augment": 48, "skeleton": 49, "element": [49, 52, 53, 55], "sound": [49, 51], "stylesheet": [49, 70], "webpag": 49, "footer": [49, 53], "portion": 49, "color": [49, 69], "336699": 49, "welcom": 49, "awesom": [49, 68], "homepag": 49, "bunch": 50, "lang_cod": 50, "repetit": 50, "annoi": 50, "latter": 50, "add_language_cod": 50, "is_endpoint_expect": 50, "pull_lang_cod": 50, "beauti": 50, "neat": 51, "excel": [51, 58], "functool": [51, 72], "login_requir": [51, 61, 72, 73], "decorated_funct": 51, "outermost": 51, "secret_pag": 51, "hidden": [51, 55], "retriev": [51, 62, 72], "expens": 51, "60": 51, "cache_kei": 51, "invent": 51, "turbogear": 51, "gui": 51, "elif": [51, 72], "my_index": 51, "wtf": 52, "fun": [52, 53, 68], "booleanfield": 52, "passwordfield": 52, "registrationform": 52, "min": [52, 69], "25": 52, "35": 52, "datarequir": 52, "equalto": 52, "confirm": [52, 61], "repeat": 52, "accept_to": 52, "TOS": 52, "half": 52, "label": [52, 61, 69, 70], "_formhelp": 52, "render_field": 52, "conflict": 53, "greet": 53, "stat": [53, 64], "nnn": [53, 64], "omit": [53, 61, 62, 72], "breviti": 53, "meaning": 53, "visit": [53, 61, 64, 72], "show_user_profil": 53, "subpath": 53, "show_subpath": 53, "pathnam": 53, "transpar": 53, "20doe": 53, "do_the_login": 53, "show_the_login_form": 53, "login_get": 53, "login_post": 53, "cumbersom": 53, "primarili": 53, "markdown": [53, 59, 68], "blink": 53, "unsur": 53, "crucial": 53, "react": 53, "threadsaf": 53, "mouth": 53, "intellig": 53, "broad": 53, "valid_login": 53, "log_the_user_in": 53, "searchword": 53, "friendli": 53, "the_fil": 53, "uploaded_fil": 53, "ever": 53, "this_is_never_execut": 53, "pointless": 53, "deni": 53, "translat": [53, 55], "me_api": 53, "get_current_us": 53, "user_imag": 53, "users_api": 53, "get_all_us": 53, "logout": [53, 60, 70, 71], "inde": 53, "tamper": [53, 72], "okai": 53, "fishi": 53, "preconfigur": 53, "appl": 53, "contextvar": 54, "make_report": 54, "short": [54, 58], "show_teardown": 54, "scene": [54, 68], "_get_current_object": [54, 58], "my_sign": [54, 58], "remedi": 55, "textfil": 55, "unquot": 55, "vector": 55, "onmouseov": 55, "mous": 55, "social": 55, "stupid": 55, "facebook": 55, "kitten": 55, "fluffi": 55, "cat": 55, "vulner": [55, 72], "ecmascript": 55, "extrem": 55, "seriou": 55, "review": [55, 65, 68], "talisman": 55, "man": 55, "middl": 55, "mitm": 55, "31536000": 55, "includesubdomain": 55, "mozilla": [55, 69], "org": 55, "en": 55, "withgoogl": 55, "abus": 55, "nosniff": 55, "ifram": 55, "outer": 55, "invisibli": 55, "clickjack": 55, "sameorigin": 55, "traffic": 55, "snake": 55, "600": 55, "replai": 55, "timedseri": 55, "undo": 55, "public_key_pin": 55, "backspac": 55, "h": 55, "bose": 55, "bm": 55, "bi": 55, "bt": 55, "yosemit": 55, "technic": 55, "forbidden": [56, 61, 71], "5001": 56, "netstat": 56, "lsof": 56, "6847": 56, "nlp": 56, "grep": 56, "tcp": 56, "ipv4": 56, "ano": 56, "findstr": 56, "monterei": 56, "airplai": 56, "everybodi": 57, "love": 57, "stuff": 57, "star": 57, "shelltool": 57, "gracefulli": 58, "decoupl": 58, "notifi": 58, "contrast": 58, "unsubscrib": 58, "captured_templ": 58, "arriv": 58, "model_sav": 58, "degrad": 58, "when_template_rend": 58, "leverag": 59, "rich": 59, "_helper": 59, "my_macro": 59, "frustrat": 59, "myvari": 59, "altogeth": 59, "will_not_be_escap": 59, "endautoescap": 59, "cautiou": 59, "reverse_filt": 59, "mylist": 59, "inject_us": 59, "anywai": 59, "utility_processor": 59, "format_pric": 59, "currenc": 59, "2f": 59, "33": 59, "increment": 59, "flaskr": [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72], "explan": [60, 66], "test_": [60, 71], "conftest": [60, 67, 71], "my_project": 60, "reset": 60, "examin": 60, "test_request_exampl": 60, "h2": 60, "urlencod": 60, "__file__": [60, 71], "test_edit_us": 60, "dark": 60, "test_json_data": 60, "graphql": 60, "picture_url": 60, "test_logout_redirect": 60, "test_access_sess": 60, "auth": [60, 61, 67, 69, 70, 71, 72], "test_modify_sess": 60, "hello_command": 60, "echo": [60, 62], "test_hello_command": 60, "test_db_post_model": 60, "test_validate_user_edit": 60, "validate_edit_us": 60, "test_auth_token": 60, "author_id": [61, 62, 71], "desc": 61, "strftime": 61, "hr": [61, 69], "visual": 61, "wrote": [61, 71, 72], "INTO": [61, 71, 72], "textarea": [61, 69], "get_post": 61, "check_author": 61, "fetchon": [61, 71, 72], "403": [61, 71], "unauthor": 61, "onclick": 61, "dialog": 61, "hasn": 61, "congratul": [61, 64], "sequenti": 62, "detect_typ": 62, "parse_decltyp": 62, "close_db": 62, "reus": 62, "establish": 62, "autoincr": 62, "current_timestamp": 62, "foreign": 62, "utf8": [62, 71], "init_db_command": 62, "whl": [63, 66], "bdist_wheel": 63, "dist": [63, 67], "py3": 63, "abi": 63, "gave": 63, "duti": 64, "test_config": [64, 71], "makedir": 64, "taken": 64, "walk": [65, 73], "great": 65, "dive": [65, 68], "boilerpl": 65, "comfort": [65, 71], "obviou": 66, "yourproject": 66, "zip_saf": 66, "manifest": [66, 67], "graft": 66, "bytecod": 66, "observ": 66, "39": 66, "habit": 67, "test_factori": [67, 71], "test_db": [67, 71], "test_auth": [67, 71], "test_blog": [67, 71], "gitignor": 67, "__pycache__": 67, "pytest_cach": 67, "throughout": 68, "took": [68, 72], "seen": 68, "equip": 68, "box": 68, "rss": 68, "feed": 68, "font": 69, "san": 69, "serif": 69, "eee": 69, "pad": 69, "1rem": 69, "width": 69, "960px": 69, "margin": 69, "377ba8": 69, "border": 69, "1px": 69, "solid": 69, "lightgrai": 69, "nav": [69, 70], "flex": 69, "align": 69, "center": 69, "5rem": 69, "25rem": 69, "1em": 69, "cae6f6": 69, "85em": 69, "5em": 69, "slategrai": 69, "ital": 69, "weight": 69, "bold": 69, "height": 69, "12em": 69, "resiz": 69, "vertic": 69, "cc2f2e": 69, "10em": 69, "screenshot": 69, "placehold": [70, 72], "mess": 70, "delimit": 70, "denot": 70, "flow": 70, "load_logged_in_us": [70, 72], "ident": 70, "closer": 71, "unexpectedli": 71, "despit": 71, "measur": 71, "pbkdf2": 71, "sha256": 71, "50000": 71, "tci4gzcx": 71, "0de171a4f4dac32e3364c7ddc7c14f3e2fa61f2d17574483f7ffbb431b4acb2f": 71, "kjpksz6n": 71, "d2d4784f1b030a9761f5ccaeeaca413f27f2ecb76d6168407af962ddce849f79": 71, "0a": 71, "00": 71, "dirnam": 71, "_data_sql": 71, "db_fd": 71, "db_path": 71, "mkstemp": 71, "unlink": 71, "test_hello": 71, "test_get_close_db": 71, "programmingerror": 71, "test_init_db_command": 71, "monkeypatch": 71, "fake_init_db": 71, "setattr": 71, "authact": 71, "_client": 71, "test_regist": 71, "parametr": 71, "test_register_validate_input": 71, "test_login": 71, "test_login_validate_input": 71, "opposit": 71, "test_logout": 71, "test_index": 71, "nbodi": 71, "test_login_requir": 71, "test_author_requir": 71, "test_exists_requir": 71, "test_creat": 71, "count": 71, "test_upd": 71, "test_create_update_valid": 71, "test_delet": 71, "verbos": 71, "testpath": 71, "pluggi": 71, "rootdir": 71, "inifil": 71, "34": 71, "86": 71, "95": 71, "64": 71, "stmt": 71, "brpart": 71, "54": 71, "22": 71, "153": 71, "44": 71, "check_password_hash": 72, "generate_password_hash": 72, "integrityerror": 72, "succe": 72, "wrapped_view": 72, "userlist": 73, "listview": 73, "stori": 73, "story_list": 73, "detailview": 73, "users_list": 73, "myview": 73, "itemapi": 73, "groupapi": 73, "generate_valid": 73, "_get_item": 73, "204": 73, "register_api": 73}, "objects": {"": [[6, 0, 1, "", "APPLICATION_ROOT"], [6, 0, 1, "", "DEBUG"], [6, 0, 1, "", "ENV"], [6, 0, 1, "", "EXPLAIN_TEMPLATE_LOADING"], [6, 0, 1, "", "JSONIFY_MIMETYPE"], [6, 0, 1, "", "JSONIFY_PRETTYPRINT_REGULAR"], [6, 0, 1, "", "JSON_AS_ASCII"], [6, 0, 1, "", "JSON_SORT_KEYS"], [6, 0, 1, "", "MAX_CONTENT_LENGTH"], [6, 0, 1, "", "MAX_COOKIE_SIZE"], [6, 0, 1, "", "PERMANENT_SESSION_LIFETIME"], [6, 0, 1, "", "PREFERRED_URL_SCHEME"], [6, 0, 1, "", "PROPAGATE_EXCEPTIONS"], [6, 0, 1, "", "SECRET_KEY"], [6, 0, 1, "", "SEND_FILE_MAX_AGE_DEFAULT"], [6, 0, 1, "", "SERVER_NAME"], [6, 0, 1, "", "SESSION_COOKIE_DOMAIN"], [6, 0, 1, "", "SESSION_COOKIE_HTTPONLY"], [6, 0, 1, "", "SESSION_COOKIE_NAME"], [6, 0, 1, "", "SESSION_COOKIE_PATH"], [6, 0, 1, "", "SESSION_COOKIE_SAMESITE"], [6, 0, 1, "", "SESSION_COOKIE_SECURE"], [6, 0, 1, "", "SESSION_REFRESH_EACH_REQUEST"], [6, 0, 1, "", "TEMPLATES_AUTO_RELOAD"], [6, 0, 1, "", "TESTING"], [6, 0, 1, "", "TRAP_BAD_REQUEST_ERRORS"], [6, 0, 1, "", "TRAP_HTTP_EXCEPTIONS"], [6, 0, 1, "", "USE_X_SENDFILE"], [0, 1, 0, "-", "flask"]], "flask": [[0, 2, 1, "", "Blueprint"], [0, 2, 1, "", "Config"], [0, 2, 1, "", "Flask"], [0, 2, 1, "", "Markup"], [0, 2, 1, "", "Request"], [0, 2, 1, "", "Response"], [0, 6, 1, "", "abort"], [0, 6, 1, "", "after_this_request"], [0, 0, 1, "", "appcontext_popped"], [0, 0, 1, "", "appcontext_pushed"], [0, 0, 1, "", "appcontext_tearing_down"], [0, 6, 1, "", "copy_current_request_context"], [0, 0, 1, "", "current_app"], [0, 6, 1, "", "escape"], [0, 6, 1, "", "flash"], [0, 0, 1, "", "g"], [0, 6, 1, "", "get_flashed_messages"], [0, 6, 1, "", "get_template_attribute"], [0, 0, 1, "", "got_request_exception"], [0, 6, 1, "", "has_app_context"], [0, 6, 1, "", "has_request_context"], [0, 1, 0, "-", "json"], [0, 6, 1, "", "make_response"], [0, 0, 1, "", "message_flashed"], [0, 6, 1, "", "redirect"], [0, 6, 1, "", "render_template"], [0, 6, 1, "", "render_template_string"], [0, 4, 1, "", "request"], [0, 0, 1, "", "request_finished"], [0, 0, 1, "", "request_started"], [0, 0, 1, "", "request_tearing_down"], [0, 6, 1, "", "send_file"], [0, 6, 1, "", "send_from_directory"], [0, 2, 1, "", "session"], [0, 6, 1, "", "stream_template"], [0, 6, 1, "", "stream_template_string"], [0, 6, 1, "", "stream_with_context"], [0, 0, 1, "", "template_rendered"], [0, 6, 1, "", "url_for"]], "flask.Blueprint": [[0, 3, 1, "", "add_app_template_filter"], [0, 3, 1, "", "add_app_template_global"], [0, 3, 1, "", "add_app_template_test"], [0, 3, 1, "", "add_url_rule"], [0, 3, 1, "", "after_app_request"], [0, 3, 1, "", "after_request"], [0, 4, 1, "", "after_request_funcs"], [0, 3, 1, "", "app_context_processor"], [0, 3, 1, "", "app_errorhandler"], [0, 3, 1, "", "app_template_filter"], [0, 3, 1, "", "app_template_global"], [0, 3, 1, "", "app_template_test"], [0, 3, 1, "", "app_url_defaults"], [0, 3, 1, "", "app_url_value_preprocessor"], [0, 3, 1, "", "before_app_first_request"], [0, 3, 1, "", "before_app_request"], [0, 3, 1, "", "before_request"], [0, 4, 1, "", "before_request_funcs"], [0, 4, 1, "", "cli"], [0, 3, 1, "", "context_processor"], [0, 3, 1, "", "delete"], [0, 3, 1, "", "endpoint"], [0, 4, 1, "", "error_handler_spec"], [0, 3, 1, "", "errorhandler"], [0, 3, 1, "", "get"], [0, 3, 1, "", "get_send_file_max_age"], [0, 5, 1, "", "has_static_folder"], [0, 4, 1, "", "import_name"], [0, 5, 1, "", "jinja_loader"], [0, 5, 1, "", "json_decoder"], [0, 5, 1, "", "json_encoder"], [0, 3, 1, "", "make_setup_state"], [0, 3, 1, "", "open_resource"], [0, 3, 1, "", "patch"], [0, 3, 1, "", "post"], [0, 3, 1, "", "put"], [0, 3, 1, "", "record"], [0, 3, 1, "", "record_once"], [0, 3, 1, "", "register"], [0, 3, 1, "", "register_blueprint"], [0, 3, 1, "", "register_error_handler"], [0, 4, 1, "", "root_path"], [0, 3, 1, "", "route"], [0, 3, 1, "", "send_static_file"], [0, 5, 1, "", "static_folder"], [0, 5, 1, "", "static_url_path"], [0, 3, 1, "", "teardown_app_request"], [0, 3, 1, "", "teardown_request"], [0, 4, 1, "", "teardown_request_funcs"], [0, 4, 1, "", "template_context_processors"], [0, 4, 1, "", "template_folder"], [0, 4, 1, "", "url_default_functions"], [0, 3, 1, "", "url_defaults"], [0, 3, 1, "", "url_value_preprocessor"], [0, 4, 1, "", "url_value_preprocessors"], [0, 4, 1, "", "view_functions"]], "flask.Config": [[0, 3, 1, "", "from_envvar"], [0, 3, 1, "", "from_file"], [0, 3, 1, "", "from_mapping"], [0, 3, 1, "", "from_object"], [0, 3, 1, "", "from_prefixed_env"], [0, 3, 1, "", "from_pyfile"], [0, 3, 1, "", "get_namespace"]], "flask.Flask": [[0, 4, 1, "", "aborter"], [0, 4, 1, "", "aborter_class"], [0, 3, 1, "", "add_template_filter"], [0, 3, 1, "", "add_template_global"], [0, 3, 1, "", "add_template_test"], [0, 3, 1, "", "add_url_rule"], [0, 3, 1, "", "after_request"], [0, 4, 1, "", "after_request_funcs"], [0, 3, 1, "", "app_context"], [0, 4, 1, "", "app_ctx_globals_class"], [0, 3, 1, "", "async_to_sync"], [0, 3, 1, "", "auto_find_instance_path"], [0, 3, 1, "", "before_first_request"], [0, 4, 1, "", "before_first_request_funcs"], [0, 3, 1, "", "before_request"], [0, 4, 1, "", "before_request_funcs"], [0, 4, 1, "", "blueprints"], [0, 4, 1, "", "cli"], [0, 4, 1, "", "config"], [0, 4, 1, "", "config_class"], [0, 3, 1, "", "context_processor"], [0, 3, 1, "", "create_global_jinja_loader"], [0, 3, 1, "", "create_jinja_environment"], [0, 3, 1, "", "create_url_adapter"], [0, 5, 1, "", "debug"], [0, 4, 1, "", "default_config"], [0, 3, 1, "", "delete"], [0, 3, 1, "", "dispatch_request"], [0, 3, 1, "", "do_teardown_appcontext"], [0, 3, 1, "", "do_teardown_request"], [0, 3, 1, "", "endpoint"], [0, 3, 1, "", "ensure_sync"], [0, 5, 1, "", "env"], [0, 4, 1, "", "error_handler_spec"], [0, 3, 1, "", "errorhandler"], [0, 4, 1, "", "extensions"], [0, 3, 1, "", "full_dispatch_request"], [0, 3, 1, "", "get"], [0, 3, 1, "", "get_send_file_max_age"], [0, 5, 1, "", "got_first_request"], [0, 3, 1, "", "handle_exception"], [0, 3, 1, "", "handle_http_exception"], [0, 3, 1, "", "handle_url_build_error"], [0, 3, 1, "", "handle_user_exception"], [0, 5, 1, "", "has_static_folder"], [0, 4, 1, "", "import_name"], [0, 3, 1, "", "inject_url_defaults"], [0, 4, 1, "", "instance_path"], [0, 3, 1, "", "iter_blueprints"], [0, 5, 1, "", "jinja_env"], [0, 4, 1, "", "jinja_environment"], [0, 5, 1, "", "jinja_loader"], [0, 4, 1, "", "jinja_options"], [0, 4, 1, "", "json"], [0, 5, 1, "", "json_decoder"], [0, 5, 1, "", "json_encoder"], [0, 4, 1, "", "json_provider_class"], [0, 3, 1, "", "log_exception"], [0, 5, 1, "", "logger"], [0, 3, 1, "", "make_aborter"], [0, 3, 1, "", "make_config"], [0, 3, 1, "", "make_default_options_response"], [0, 3, 1, "", "make_response"], [0, 3, 1, "", "make_shell_context"], [0, 5, 1, "", "name"], [0, 3, 1, "", "open_instance_resource"], [0, 3, 1, "", "open_resource"], [0, 3, 1, "", "patch"], [0, 4, 1, "", "permanent_session_lifetime"], [0, 3, 1, "", "post"], [0, 3, 1, "", "preprocess_request"], [0, 3, 1, "", "process_response"], [0, 5, 1, "", "propagate_exceptions"], [0, 3, 1, "", "put"], [0, 3, 1, "", "redirect"], [0, 3, 1, "", "register_blueprint"], [0, 3, 1, "", "register_error_handler"], [0, 4, 1, "", "request_class"], [0, 3, 1, "", "request_context"], [0, 4, 1, "", "response_class"], [0, 4, 1, "", "root_path"], [0, 3, 1, "", "route"], [0, 3, 1, "", "run"], [0, 4, 1, "", "secret_key"], [0, 3, 1, "", "select_jinja_autoescape"], [0, 5, 1, "", "send_file_max_age_default"], [0, 3, 1, "", "send_static_file"], [0, 5, 1, "", "session_cookie_name"], [0, 4, 1, "", "session_interface"], [0, 3, 1, "", "shell_context_processor"], [0, 4, 1, "", "shell_context_processors"], [0, 3, 1, "", "should_ignore_error"], [0, 5, 1, "", "static_folder"], [0, 5, 1, "", "static_url_path"], [0, 3, 1, "", "teardown_appcontext"], [0, 4, 1, "", "teardown_appcontext_funcs"], [0, 3, 1, "", "teardown_request"], [0, 4, 1, "", "teardown_request_funcs"], [0, 4, 1, "", "template_context_processors"], [0, 3, 1, "", "template_filter"], [0, 4, 1, "", "template_folder"], [0, 3, 1, "", "template_global"], [0, 3, 1, "", "template_test"], [0, 5, 1, "", "templates_auto_reload"], [0, 3, 1, "", "test_cli_runner"], [0, 4, 1, "", "test_cli_runner_class"], [0, 3, 1, "", "test_client"], [0, 4, 1, "", "test_client_class"], [0, 3, 1, "", "test_request_context"], [0, 4, 1, "", "testing"], [0, 3, 1, "", "trap_http_exception"], [0, 3, 1, "", "update_template_context"], [0, 4, 1, "", "url_build_error_handlers"], [0, 4, 1, "", "url_default_functions"], [0, 3, 1, "", "url_defaults"], [0, 3, 1, "", "url_for"], [0, 4, 1, "", "url_map"], [0, 4, 1, "", "url_map_class"], [0, 4, 1, "", "url_rule_class"], [0, 3, 1, "", "url_value_preprocessor"], [0, 4, 1, "", "url_value_preprocessors"], [0, 5, 1, "", "use_x_sendfile"], [0, 4, 1, "", "view_functions"], [0, 3, 1, "", "wsgi_app"]], "flask.Markup": [[0, 3, 1, "", "escape"], [0, 3, 1, "", "striptags"], [0, 3, 1, "", "unescape"]], "flask.Request": [[0, 5, 1, "", "accept_charsets"], [0, 5, 1, "", "accept_encodings"], [0, 5, 1, "", "accept_languages"], [0, 5, 1, "", "accept_mimetypes"], [0, 4, 1, "", "access_control_request_headers"], [0, 4, 1, "", "access_control_request_method"], [0, 5, 1, "", "access_route"], [0, 3, 1, "", "application"], [0, 5, 1, "", "args"], [0, 5, 1, "", "authorization"], [0, 5, 1, "", "base_url"], [0, 5, 1, "", "blueprint"], [0, 5, 1, "", "blueprints"], [0, 5, 1, "", "cache_control"], [0, 4, 1, "", "charset"], [0, 3, 1, "", "close"], [0, 4, 1, "", "content_encoding"], [0, 5, 1, "", "content_length"], [0, 4, 1, "", "content_md5"], [0, 4, 1, "", "content_type"], [0, 5, 1, "", "cookies"], [0, 5, 1, "", "data"], [0, 4, 1, "", "date"], [0, 4, 1, "", "dict_storage_class"], [0, 4, 1, "", "encoding_errors"], [0, 5, 1, "", "endpoint"], [0, 4, 1, "", "environ"], [0, 5, 1, "", "files"], [0, 5, 1, "", "form"], [0, 4, 1, "", "form_data_parser_class"], [0, 3, 1, "", "from_values"], [0, 5, 1, "", "full_path"], [0, 3, 1, "", "get_data"], [0, 3, 1, "", "get_json"], [0, 4, 1, "", "headers"], [0, 5, 1, "", "host"], [0, 5, 1, "", "host_url"], [0, 5, 1, "", "if_match"], [0, 5, 1, "", "if_modified_since"], [0, 5, 1, "", "if_none_match"], [0, 5, 1, "", "if_range"], [0, 5, 1, "", "if_unmodified_since"], [0, 4, 1, "", "input_stream"], [0, 5, 1, "", "is_json"], [0, 4, 1, "", "is_multiprocess"], [0, 4, 1, "", "is_multithread"], [0, 4, 1, "", "is_run_once"], [0, 5, 1, "", "is_secure"], [0, 5, 1, "", "json"], [0, 4, 1, "", "list_storage_class"], [0, 3, 1, "", "make_form_data_parser"], [0, 5, 1, "", "max_content_length"], [0, 4, 1, "", "max_form_memory_size"], [0, 4, 1, "", "max_form_parts"], [0, 4, 1, "", "max_forwards"], [0, 4, 1, "", "method"], [0, 5, 1, "", "mimetype"], [0, 5, 1, "", "mimetype_params"], [0, 3, 1, "", "on_json_loading_failed"], [0, 4, 1, "", "origin"], [0, 4, 1, "", "parameter_storage_class"], [0, 4, 1, "", "path"], [0, 5, 1, "", "pragma"], [0, 4, 1, "", "query_string"], [0, 5, 1, "", "range"], [0, 4, 1, "", "referrer"], [0, 4, 1, "", "remote_addr"], [0, 4, 1, "", "remote_user"], [0, 4, 1, "", "root_path"], [0, 5, 1, "", "root_url"], [0, 4, 1, "", "routing_exception"], [0, 4, 1, "", "scheme"], [0, 5, 1, "", "script_root"], [0, 4, 1, "", "server"], [0, 4, 1, "", "shallow"], [0, 5, 1, "", "stream"], [0, 4, 1, "", "trusted_hosts"], [0, 5, 1, "", "url"], [0, 5, 1, "", "url_charset"], [0, 5, 1, "", "url_root"], [0, 4, 1, "", "url_rule"], [0, 5, 1, "", "user_agent"], [0, 4, 1, "", "user_agent_class"], [0, 5, 1, "", "values"], [0, 4, 1, "", "view_args"], [0, 5, 1, "", "want_form_data_parsed"]], "flask.Response": [[0, 4, 1, "", "accept_ranges"], [0, 5, 1, "", "access_control_allow_credentials"], [0, 4, 1, "", "access_control_allow_headers"], [0, 4, 1, "", "access_control_allow_methods"], [0, 4, 1, "", "access_control_allow_origin"], [0, 4, 1, "", "access_control_expose_headers"], [0, 4, 1, "", "access_control_max_age"], [0, 3, 1, "", "add_etag"], [0, 4, 1, "", "age"], [0, 5, 1, "", "allow"], [0, 4, 1, "", "autocorrect_location_header"], [0, 4, 1, "", "automatically_set_content_length"], [0, 5, 1, "", "cache_control"], [0, 3, 1, "", "calculate_content_length"], [0, 3, 1, "", "call_on_close"], [0, 4, 1, "", "charset"], [0, 3, 1, "", "close"], [0, 4, 1, "", "content_encoding"], [0, 5, 1, "", "content_language"], [0, 4, 1, "", "content_length"], [0, 4, 1, "", "content_location"], [0, 4, 1, "", "content_md5"], [0, 5, 1, "", "content_range"], [0, 5, 1, "", "content_security_policy"], [0, 5, 1, "", "content_security_policy_report_only"], [0, 4, 1, "", "content_type"], [0, 4, 1, "", "cross_origin_embedder_policy"], [0, 4, 1, "", "cross_origin_opener_policy"], [0, 5, 1, "", "data"], [0, 4, 1, "", "date"], [0, 4, 1, "", "default_mimetype"], [0, 4, 1, "", "default_status"], [0, 3, 1, "", "delete_cookie"], [0, 4, 1, "", "direct_passthrough"], [0, 4, 1, "", "expires"], [0, 3, 1, "", "force_type"], [0, 3, 1, "", "freeze"], [0, 3, 1, "", "from_app"], [0, 3, 1, "", "get_app_iter"], [0, 3, 1, "", "get_data"], [0, 3, 1, "", "get_etag"], [0, 3, 1, "", "get_json"], [0, 3, 1, "", "get_wsgi_headers"], [0, 3, 1, "", "get_wsgi_response"], [0, 4, 1, "", "implicit_sequence_conversion"], [0, 5, 1, "", "is_json"], [0, 5, 1, "", "is_sequence"], [0, 5, 1, "", "is_streamed"], [0, 3, 1, "", "iter_encoded"], [0, 5, 1, "", "json"], [0, 4, 1, "", "last_modified"], [0, 4, 1, "", "location"], [0, 3, 1, "", "make_conditional"], [0, 3, 1, "", "make_sequence"], [0, 5, 1, "", "max_cookie_size"], [0, 5, 1, "", "mimetype"], [0, 5, 1, "", "mimetype_params"], [0, 4, 1, "", "response"], [0, 5, 1, "", "retry_after"], [0, 3, 1, "", "set_cookie"], [0, 3, 1, "", "set_data"], [0, 3, 1, "", "set_etag"], [0, 5, 1, "", "status"], [0, 5, 1, "", "status_code"], [0, 5, 1, "", "stream"], [0, 5, 1, "", "vary"], [0, 5, 1, "", "www_authenticate"]], "flask.blueprints": [[0, 2, 1, "", "BlueprintSetupState"]], "flask.blueprints.BlueprintSetupState": [[0, 3, 1, "", "add_url_rule"], [0, 4, 1, "", "app"], [0, 4, 1, "", "blueprint"], [0, 4, 1, "", "first_registration"], [0, 4, 1, "", "options"], [0, 4, 1, "", "subdomain"], [0, 4, 1, "", "url_defaults"], [0, 4, 1, "", "url_prefix"]], "flask.cli": [[0, 2, 1, "", "AppGroup"], [0, 2, 1, "", "FlaskGroup"], [0, 2, 1, "", "ScriptInfo"], [0, 6, 1, "", "load_dotenv"], [0, 6, 1, "", "pass_script_info"], [0, 0, 1, "", "run_command"], [0, 0, 1, "", "shell_command"], [0, 6, 1, "", "with_appcontext"]], "flask.cli.AppGroup": [[0, 3, 1, "", "command"], [0, 3, 1, "", "group"]], "flask.cli.FlaskGroup": [[0, 3, 1, "", "get_command"], [0, 3, 1, "", "list_commands"], [0, 3, 1, "", "make_context"], [0, 3, 1, "", "parse_args"]], "flask.cli.ScriptInfo": [[0, 4, 1, "", "app_import_path"], [0, 4, 1, "", "create_app"], [0, 4, 1, "", "data"], [0, 3, 1, "", "load_app"]], "flask.ctx": [[0, 2, 1, "", "AppContext"], [0, 2, 1, "", "RequestContext"], [0, 2, 1, "", "_AppCtxGlobals"]], "flask.ctx.AppContext": [[0, 3, 1, "", "pop"], [0, 3, 1, "", "push"]], "flask.ctx.RequestContext": [[0, 3, 1, "", "copy"], [0, 3, 1, "", "match_request"], [0, 3, 1, "", "pop"]], "flask.ctx._AppCtxGlobals": [[0, 3, 1, "", "get"], [0, 3, 1, "", "pop"], [0, 3, 1, "", "setdefault"]], "flask.flask.globals": [[0, 0, 1, "", "app_ctx"], [0, 0, 1, "", "request_ctx"]], "flask.json": [[0, 2, 1, "", "JSONDecoder"], [0, 2, 1, "", "JSONEncoder"], [0, 6, 1, "", "dump"], [0, 6, 1, "", "dumps"], [0, 6, 1, "", "jsonify"], [0, 6, 1, "", "load"], [0, 6, 1, "", "loads"], [0, 1, 0, "-", "tag"]], "flask.json.JSONEncoder": [[0, 3, 1, "", "default"]], "flask.json.provider": [[0, 2, 1, "", "DefaultJSONProvider"], [0, 2, 1, "", "JSONProvider"]], "flask.json.provider.DefaultJSONProvider": [[0, 4, 1, "", "compact"], [0, 3, 1, "", "default"], [0, 3, 1, "", "dumps"], [0, 4, 1, "", "ensure_ascii"], [0, 3, 1, "", "loads"], [0, 4, 1, "", "mimetype"], [0, 3, 1, "", "response"], [0, 4, 1, "", "sort_keys"]], "flask.json.provider.JSONProvider": [[0, 3, 1, "", "dump"], [0, 3, 1, "", "dumps"], [0, 3, 1, "", "load"], [0, 3, 1, "", "loads"], [0, 3, 1, "", "response"]], "flask.json.tag": [[0, 2, 1, "", "JSONTag"], [0, 2, 1, "", "TaggedJSONSerializer"]], "flask.json.tag.JSONTag": [[0, 3, 1, "", "check"], [0, 4, 1, "", "key"], [0, 3, 1, "", "tag"], [0, 3, 1, "", "to_json"], [0, 3, 1, "", "to_python"]], "flask.json.tag.TaggedJSONSerializer": [[0, 4, 1, "", "default_tags"], [0, 3, 1, "", "dumps"], [0, 3, 1, "", "loads"], [0, 3, 1, "", "register"], [0, 3, 1, "", "tag"], [0, 3, 1, "", "untag"]], "flask.session": [[0, 4, 1, "", "modified"], [0, 4, 1, "", "new"], [0, 4, 1, "", "permanent"]], "flask.sessions": [[0, 2, 1, "", "NullSession"], [0, 2, 1, "", "SecureCookieSession"], [0, 2, 1, "", "SecureCookieSessionInterface"], [0, 2, 1, "", "SessionInterface"], [0, 2, 1, "", "SessionMixin"]], "flask.sessions.NullSession": [[0, 3, 1, "", "clear"], [0, 3, 1, "", "pop"], [0, 3, 1, "", "popitem"], [0, 3, 1, "", "setdefault"], [0, 3, 1, "", "update"]], "flask.sessions.SecureCookieSession": [[0, 4, 1, "", "accessed"], [0, 3, 1, "", "get"], [0, 4, 1, "", "modified"], [0, 3, 1, "", "setdefault"]], "flask.sessions.SecureCookieSessionInterface": [[0, 3, 1, "", "digest_method"], [0, 4, 1, "", "key_derivation"], [0, 3, 1, "", "open_session"], [0, 4, 1, "", "salt"], [0, 3, 1, "", "save_session"], [0, 4, 1, "", "serializer"], [0, 4, 1, "", "session_class"]], "flask.sessions.SessionInterface": [[0, 3, 1, "", "get_cookie_domain"], [0, 3, 1, "", "get_cookie_httponly"], [0, 3, 1, "", "get_cookie_name"], [0, 3, 1, "", "get_cookie_path"], [0, 3, 1, "", "get_cookie_samesite"], [0, 3, 1, "", "get_cookie_secure"], [0, 3, 1, "", "get_expiration_time"], [0, 3, 1, "", "is_null_session"], [0, 3, 1, "", "make_null_session"], [0, 4, 1, "", "null_session_class"], [0, 3, 1, "", "open_session"], [0, 4, 1, "", "pickle_based"], [0, 3, 1, "", "save_session"], [0, 3, 1, "", "should_set_cookie"]], "flask.sessions.SessionMixin": [[0, 4, 1, "", "accessed"], [0, 4, 1, "", "modified"], [0, 5, 1, "", "permanent"]], "flask.signals": [[0, 2, 1, "", "Namespace"], [0, 0, 1, "", "signals_available"]], "flask.signals.Namespace": [[0, 3, 1, "", "signal"]], "flask.testing": [[0, 2, 1, "", "FlaskCliRunner"], [0, 2, 1, "", "FlaskClient"]], "flask.testing.FlaskCliRunner": [[0, 3, 1, "", "invoke"]], "flask.testing.FlaskClient": [[0, 3, 1, "", "open"], [0, 3, 1, "", "session_transaction"]], "flask.views": [[0, 2, 1, "", "MethodView"], [0, 2, 1, "", "View"]], "flask.views.MethodView": [[0, 3, 1, "", "dispatch_request"]], "flask.views.View": [[0, 3, 1, "", "as_view"], [0, 4, 1, "", "decorators"], [0, 3, 1, "", "dispatch_request"], [0, 4, 1, "", "init_every_request"], [0, 4, 1, "", "methods"], [0, 4, 1, "", "provide_automatic_options"]]}, "objtypes": {"0": "py:data", "1": "py:module", "2": "py:class", "3": "py:method", "4": "py:attribute", "5": "py:property", "6": "py:function"}, "objnames": {"0": ["py", "data", "Python data"], "1": ["py", "module", "Python module"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "property", "Python property"], "6": ["py", "function", "Python function"]}, "titleterms": {"api": [0, 21, 24, 53, 58, 73], "applic": [0, 1, 3, 5, 8, 20, 21, 28, 29, 42, 44, 50, 53, 60, 62, 64], "object": [0, 20, 45, 53], "about": [0, 53], "first": [0, 3, 7, 72], "paramet": 0, "keep": [0, 68], "mind": 0, "blueprint": [0, 3, 5, 21, 42, 50, 61, 72], "incom": 0, "request": [0, 22, 27, 32, 37, 43, 53, 54, 55, 57, 58, 60], "data": [0, 1, 6, 22, 41, 53, 60], "respons": [0, 53], "session": [0, 53, 60], "interfac": [0, 5, 57], "notic": 0, "test": [0, 7, 60, 71], "client": [0, 60], "cli": [0, 60], "runner": [0, 60], "global": 0, "us": [0, 2, 23, 29, 46, 50, 53, 56], "function": 0, "class": [0, 22, 73], "messag": [0, 35, 53], "flash": [0, 35, 53], "json": [0, 21, 37, 53, 55, 60], "support": [0, 7, 20], "tag": 0, "templat": [0, 3, 20, 37, 47, 49, 51, 52, 53, 59, 70], "render": [0, 37, 53], "configur": [0, 6, 9, 16, 22, 27, 31, 41, 63], "stream": [0, 47, 59], "helper": 0, "intern": 0, "signal": [0, 1, 54, 58], "base": [0, 49, 58, 70, 73], "view": [0, 22, 37, 39, 51, 52, 72, 73], "url": [0, 3, 37, 39, 50, 53, 72, 73], "rout": [0, 20, 53], "registr": 0, "option": [0, 5, 14, 25, 55], "command": [0, 5, 56, 57, 60], "line": [0, 5, 56, 57], "The": [1, 3, 8, 20, 22, 52, 53, 54, 59, 61, 64, 70, 72], "context": [1, 5, 47, 53, 54, 57, 58, 59, 60], "purpos": [1, 54], "lifetim": [1, 54, 73], "manual": [1, 45, 54], "push": [1, 54], "store": 1, "event": [1, 2], "async": [2, 13, 18, 20], "await": [2, 20], "window": 2, "python": [2, 6, 25], "3": [2, 4, 26, 46], "8": [2, 4], "greenlet": [2, 25], "perform": 2, "background": [2, 31], "task": [2, 31], "when": 2, "quart": 2, "instead": 2, "extens": [2, 22, 23, 27, 29, 45, 52, 53, 58], "other": [2, 27, 72], "loop": 2, "modular": 3, "why": 3, "concept": 3, "my": 3, "regist": [3, 5, 21, 59, 62, 70, 72], "nest": 3, "resourc": 3, "folder": [3, 6], "static": [3, 53, 69], "file": [3, 5, 6, 34, 53, 62, 69], "build": [3, 7, 23, 53, 63], "error": [3, 5, 8, 21, 27, 53, 54, 56], "handler": [3, 21, 27], "chang": [4, 58], "version": [4, 25], "2": 4, "1": 4, "0": 4, "4": 4, "12": 4, "5": 4, "11": 4, "10": 4, "9": 4, "7": 4, "6": 4, "discoveri": [5, 53], "run": [5, 7, 11, 12, 13, 15, 18, 19, 31, 60, 63, 64, 71], "develop": [5, 6, 22, 56, 58, 68], "server": [5, 53, 56, 63], "debug": [5, 6, 8, 21, 53], "mode": [5, 6, 53], "watch": 5, "ignor": 5, "reload": [5, 56], "open": 5, "shell": [5, 57], "environ": [5, 6, 25], "variabl": [5, 6, 53, 73], "from": [5, 6, 37, 47], "dotenv": 5, "set": [5, 55], "disabl": 5, "virtualenv": 5, "custom": [5, 21], "plugin": 5, "script": [5, 55], "pycharm": 5, "integr": 5, "handl": [6, 21], "basic": [6, 27, 29, 47, 73], "builtin": 6, "valu": 6, "best": 6, "practic": 6, "product": [6, 8, 14, 63], "instanc": 6, "how": [7, 53, 54], "contribut": 7, "flask": [7, 17, 20, 22, 24, 25, 27, 36, 45, 46, 48, 53, 58, 60], "question": 7, "report": 7, "issu": [7, 34], "submit": 7, "patch": 7, "time": 7, "setup": [7, 59, 64, 71], "start": 7, "code": [7, 56], "coverag": [7, 71], "doc": 7, "In": [8, 52, 56, 70], "built": 8, "debugg": 8, "extern": [8, 11, 12, 13, 15, 18, 19, 53], "apach": 9, "httpd": 9, "domain": [9, 16], "name": [9, 16, 22], "asgi": [10, 20], "eventlet": [11, 13], "instal": [11, 12, 13, 15, 18, 19, 25, 31, 63, 66], "bind": [11, 12, 13, 15, 18, 19], "gevent": [12, 13, 18], "gunicorn": 13, "deploi": [14, 53, 63], "self": [14, 73], "host": 14, "platform": 14, "mod_wsgi": 15, "nginx": 16, "tell": 17, "i": [17, 20], "behind": 17, "proxi": [17, 54, 58], "uwsgi": 18, "waitress": 19, "design": 20, "decis": 20, "explicit": 20, "system": 20, "One": 20, "engin": 20, "what": 20, "doe": 20, "micro": 20, "mean": 20, "thread": 20, "local": [20, 53], "Not": 20, "log": [21, 27, 53, 70], "tool": 21, "gener": [21, 37, 53], "except": 21, "unhandl": 21, "page": [21, 44], "further": [21, 57], "exampl": [21, 31], "return": [21, 37], "initi": [22, 46, 62], "ad": [22, 33, 40], "behavior": [22, 53, 59], "techniqu": 22, "dure": 22, "model": 22, "recommend": 22, "guidelin": 22, "find": 23, "welcom": 24, "user": [24, 70], "": [24, 58], "guid": 24, "refer": 24, "addit": 24, "note": [24, 54], "depend": [25, 60], "virtual": 25, "creat": [25, 41, 57, 58, 61, 62, 72], "an": [25, 31, 34, 52, 60], "activ": [25, 60], "licens": 26, "bsd": 26, "claus": 26, "sourc": 26, "artwork": 26, "default": 27, "remov": 27, "email": 27, "admin": 27, "inject": 27, "inform": [27, 34, 53], "librari": 27, "werkzeug": 27, "dispatch": [28, 73], "work": [28, 42, 54, 57], "thi": 28, "document": [28, 41], "combin": 28, "subdomain": 28, "path": 28, "factori": [29, 64, 71], "improv": [29, 34, 57], "cach": [30, 51], "celeri": 31, "worker": 31, "defer": [32, 56], "callback": [32, 54], "favicon": 33, "see": 33, "also": 33, "upload": [34, 53], "A": [34, 53, 70], "gentl": 34, "introduct": 34, "pro": 34, "connect": [34, 46, 62], "reset": 34, "progress": 34, "bar": 34, "easier": 34, "solut": 34, "simpl": [35, 42], "With": 35, "categori": 35, "filter": [35, 59], "pattern": 36, "javascript": 37, "fetch": 37, "make": [37, 66], "follow": [37, 60], "redirect": [37, 53, 60], "replac": 37, "content": [37, 43, 47, 55, 65], "receiv": 37, "ajax": 38, "jqueri": 38, "lazili": 39, "load": 39, "convert": 39, "central": 39, "map": [39, 41, 45], "late": 39, "http": [40, 53, 55], "method": [40, 53, 73], "overrid": 40, "mongodb": 41, "mongoengin": 41, "queri": [41, 46], "larg": 42, "packag": 42, "circular": 42, "import": 42, "checksum": 43, "singl": 44, "sqlalchemi": 45, "declar": 45, "relat": 45, "sql": 45, "abstract": 45, "layer": 45, "sqlite": 46, "demand": 46, "easi": 46, "schema": 46, "usag": 47, "subclass": 48, "inherit": 49, "child": 49, "processor": [50, 59], "internation": 50, "decor": [51, 58, 73], "login": [51, 72], "requir": [51, 72], "endpoint": [51, 72], "form": [52, 60], "valid": 52, "wtform": 52, "get": 52, "most": 52, "out": 52, "quickstart": 53, "minim": 53, "visibl": 53, "html": 53, "escap": 53, "rule": 53, "uniqu": 53, "access": [53, 60, 62], "insid": 53, "cooki": [53, 55], "good": 53, "secret": [53, 63], "kei": [53, 55, 63], "hook": 53, "wsgi": 53, "middlewar": 53, "web": 53, "teardown": 54, "On": 54, "secur": 55, "consider": 55, "cross": 55, "site": 55, "xss": 55, "forgeri": 55, "csrf": 55, "header": 55, "strict": 55, "transport": 55, "hst": 55, "polici": 55, "csp": 55, "x": 55, "type": 55, "frame": 55, "public": 55, "pin": 55, "hpkp": 55, "copi": 55, "past": 55, "termin": 55, "address": 56, "alreadi": 56, "fire": 57, "befor": 57, "after": 57, "experi": 57, "subscrib": 58, "blinker": 58, "For": 58, "send": [58, 60], "pass": 58, "sender": 58, "subscript": 58, "core": 58, "jinja": 59, "standard": 59, "control": 59, "autoescap": 59, "identifi": 60, "fixtur": [60, 71], "modifi": 60, "blog": [61, 71], "index": 61, "updat": 61, "delet": 61, "defin": 62, "databas": [62, 71], "tabl": 62, "tutori": 65, "project": [66, 67], "describ": 66, "layout": [67, 70], "authent": [71, 72], "logout": 72, "reusabl": 73, "hint": 73}, "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": 57}, "alltitles": {"API": [[0, "module-flask"]], "Application Object": [[0, "application-object"]], "About the First Parameter": [[0, null]], "Keep in Mind": [[0, null]], "Blueprint Objects": [[0, "blueprint-objects"]], "Incoming Request Data": [[0, "incoming-request-data"]], "Response Objects": [[0, "response-objects"]], "Sessions": [[0, "sessions"], [53, "sessions"]], "Session Interface": [[0, "session-interface"]], "Notice": [[0, null]], "Test Client": [[0, "test-client"]], "Test CLI Runner": [[0, "test-cli-runner"]], "Application Globals": [[0, "application-globals"]], "Useful Functions and Classes": [[0, "useful-functions-and-classes"]], "Message Flashing": [[0, "message-flashing"], [35, "message-flashing"], [53, "message-flashing"]], "JSON Support": [[0, "module-flask.json"]], "Tagged JSON": [[0, "tagged-json"]], "Template Rendering": [[0, "template-rendering"]], "Configuration": [[0, "configuration"], [9, "configuration"], [16, "configuration"], [41, "configuration"]], "Stream Helpers": [[0, "stream-helpers"]], "Useful Internals": [[0, "useful-internals"]], "Signals": [[0, "signals"], [54, "signals"], [58, "signals"]], "Class-Based Views": [[0, "class-based-views"]], "URL Route Registrations": [[0, "url-route-registrations"]], "View Function Options": [[0, "view-function-options"]], "Command Line Interface": [[0, "command-line-interface"], [5, "command-line-interface"], [57, "command-line-interface"]], "The Application Context": [[1, "the-application-context"]], "Purpose of the Context": [[1, "purpose-of-the-context"], [54, "purpose-of-the-context"]], "Lifetime of the Context": [[1, "lifetime-of-the-context"], [54, "lifetime-of-the-context"]], "Manually Push a Context": [[1, "manually-push-a-context"], [54, "manually-push-a-context"]], "Storing Data": [[1, "storing-data"]], "Events and Signals": [[1, "events-and-signals"]], "Using async and await": [[2, "using-async-and-await"]], "Using async on Windows on Python 3.8": [[2, null]], "Using async with greenlet": [[2, null]], "Performance": [[2, "performance"]], "Background tasks": [[2, "background-tasks"]], "When to use Quart instead": [[2, "when-to-use-quart-instead"]], "Extensions": [[2, "extensions"], [23, "extensions"]], "Other event loops": [[2, "other-event-loops"]], "Modular Applications with Blueprints": [[3, "modular-applications-with-blueprints"]], "Why Blueprints?": [[3, "why-blueprints"]], "The Concept of Blueprints": [[3, "the-concept-of-blueprints"]], "My First Blueprint": [[3, "my-first-blueprint"]], "Registering Blueprints": [[3, "registering-blueprints"]], "Nesting Blueprints": [[3, "nesting-blueprints"]], "Blueprint Resources": [[3, "blueprint-resources"]], "Blueprint Resource Folder": [[3, "blueprint-resource-folder"]], "Static Files": [[3, "static-files"], [53, "static-files"], [69, "static-files"]], "Templates": [[3, "templates"], [59, "templates"], [70, "templates"]], "Building URLs": [[3, "building-urls"]], "Blueprint Error Handlers": [[3, "blueprint-error-handlers"], [21, "blueprint-error-handlers"]], "Changes": [[4, "changes"]], "Version 2.2.2": [[4, "version-2-2-2"]], "Version 2.2.1": [[4, "version-2-2-1"]], "Version 2.2.0": [[4, "version-2-2-0"]], "Version 2.1.3": [[4, "version-2-1-3"]], "Version 2.1.2": [[4, "version-2-1-2"]], "Version 2.1.1": [[4, "version-2-1-1"]], "Version 2.1.0": [[4, "version-2-1-0"]], "Version 2.0.3": [[4, "version-2-0-3"]], "Version 2.0.2": [[4, "version-2-0-2"]], "Version 2.0.1": [[4, "version-2-0-1"]], "Version 2.0.0": [[4, "version-2-0-0"]], "Version 1.1.4": [[4, "version-1-1-4"]], "Version 1.1.3": [[4, "version-1-1-3"]], "Version 1.1.2": [[4, "version-1-1-2"]], "Version 1.1.1": [[4, "version-1-1-1"]], "Version 1.1.0": [[4, "version-1-1-0"]], "Version 1.0.4": [[4, "version-1-0-4"]], "Version 1.0.3": [[4, "version-1-0-3"]], "Version 1.0.2": [[4, "version-1-0-2"]], "Version 1.0.1": [[4, "version-1-0-1"]], "Version 1.0": [[4, "version-1-0"]], "Version 0.12.5": [[4, "version-0-12-5"]], "Version 0.12.4": [[4, "version-0-12-4"]], "Version 0.12.3": [[4, "version-0-12-3"]], "Version 0.12.2": [[4, "version-0-12-2"]], "Version 0.12.1": [[4, "version-0-12-1"]], "Version 0.12": [[4, "version-0-12"]], "Version 0.11.1": [[4, "version-0-11-1"]], "Version 0.11": [[4, "version-0-11"]], "Version 0.10.1": [[4, "version-0-10-1"]], "Version 0.10": [[4, "version-0-10"]], "Version 0.9": [[4, "version-0-9"]], "Version 0.8.1": [[4, "version-0-8-1"]], "Version 0.8": [[4, "version-0-8"]], "Version 0.7.2": [[4, "version-0-7-2"]], "Version 0.7.1": [[4, "version-0-7-1"]], "Version 0.7": [[4, "version-0-7"]], "Version 0.6.1": [[4, "version-0-6-1"]], "Version 0.6": [[4, "version-0-6"]], "Version 0.5.2": [[4, "version-0-5-2"]], "Version 0.5.1": [[4, "version-0-5-1"]], "Version 0.5": [[4, "version-0-5"]], "Version 0.4": [[4, "version-0-4"]], "Version 0.3.1": [[4, "version-0-3-1"]], "Version 0.3": [[4, "version-0-3"]], "Version 0.2": [[4, "version-0-2"]], "Version 0.1": [[4, "version-0-1"]], "Application Discovery": [[5, "application-discovery"]], "Run the Development Server": [[5, "run-the-development-server"]], "Debug Mode": [[5, "debug-mode"], [6, "debug-mode"], [53, "debug-mode"]], "Watch and Ignore Files with the Reloader": [[5, "watch-and-ignore-files-with-the-reloader"]], "Open a Shell": [[5, "open-a-shell"]], "Environment Variables From dotenv": [[5, "environment-variables-from-dotenv"]], "Setting Command Options": [[5, "setting-command-options"]], "Disable dotenv": [[5, "disable-dotenv"]], "Environment Variables From virtualenv": [[5, "environment-variables-from-virtualenv"]], "Custom Commands": [[5, "custom-commands"]], "Registering Commands with Blueprints": [[5, "registering-commands-with-blueprints"]], "Application Context": [[5, "application-context"]], "Plugins": [[5, "plugins"]], "Custom Scripts": [[5, "custom-scripts"]], "Errors in Custom Scripts": [[5, null]], "PyCharm Integration": [[5, "pycharm-integration"]], "Configuration Handling": [[6, "configuration-handling"]], "Configuration Basics": [[6, "configuration-basics"]], "Builtin Configuration Values": [[6, "builtin-configuration-values"]], "Configuring from Python Files": [[6, "configuring-from-python-files"]], "Configuring from Data Files": [[6, "configuring-from-data-files"]], "Configuring from Environment Variables": [[6, "configuring-from-environment-variables"]], "Configuration Best Practices": [[6, "configuration-best-practices"]], "Development / Production": [[6, "development-production"]], "Instance Folders": [[6, "instance-folders"]], "How to contribute to Flask": [[7, "how-to-contribute-to-flask"]], "Support questions": [[7, "support-questions"]], "Reporting issues": [[7, "reporting-issues"]], "Submitting patches": [[7, "submitting-patches"]], "First time setup": [[7, "first-time-setup"]], "Start coding": [[7, "start-coding"]], "Running the tests": [[7, "running-the-tests"]], "Running test coverage": [[7, "running-test-coverage"]], "Building the docs": [[7, "building-the-docs"]], "Debugging Application Errors": [[8, "debugging-application-errors"]], "In Production": [[8, "in-production"]], "The Built-In Debugger": [[8, "the-built-in-debugger"]], "External Debuggers": [[8, "external-debuggers"]], "Apache httpd": [[9, "apache-httpd"]], "Domain Name": [[9, "domain-name"], [16, "domain-name"]], "ASGI": [[10, "asgi"]], "eventlet": [[11, "eventlet"]], "Installing": [[11, "installing"], [12, "installing"], [13, "installing"], [15, "installing"], [18, "installing"], [19, "installing"]], "Running": [[11, "running"], [12, "running"], [13, "running"], [15, "running"], [18, "running"], [19, "running"]], "Binding Externally": [[11, "binding-externally"], [12, "binding-externally"], [13, "binding-externally"], [15, "binding-externally"], [18, "binding-externally"], [19, "binding-externally"]], "gevent": [[12, "gevent"]], "Gunicorn": [[13, "gunicorn"]], "Async with gevent or eventlet": [[13, "async-with-gevent-or-eventlet"]], "Deploying to Production": [[14, "deploying-to-production"]], "Self-Hosted Options": [[14, "self-hosted-options"]], "Hosting Platforms": [[14, "hosting-platforms"]], "mod_wsgi": [[15, "mod-wsgi"]], "nginx": [[16, "nginx"]], "Tell Flask it is Behind a Proxy": [[17, "tell-flask-it-is-behind-a-proxy"]], "uWSGI": [[18, "uwsgi"]], "Async with gevent": [[18, "async-with-gevent"]], "Waitress": [[19, "waitress"]], "Design Decisions in Flask": [[20, "design-decisions-in-flask"]], "The Explicit Application Object": [[20, "the-explicit-application-object"]], "The Routing System": [[20, "the-routing-system"]], "One Template Engine": [[20, "one-template-engine"]], "What does \u201cmicro\u201d mean?": [[20, "what-does-micro-mean"]], "Thread Locals": [[20, "thread-locals"]], "Async/await and ASGI support": [[20, "async-await-and-asgi-support"]], "What Flask is, What Flask is Not": [[20, "what-flask-is-what-flask-is-not"]], "Handling Application Errors": [[21, "handling-application-errors"]], "Error Logging Tools": [[21, "error-logging-tools"]], "Error Handlers": [[21, "error-handlers"]], "Registering": [[21, "registering"]], "Handling": [[21, "handling"]], "Generic Exception Handlers": [[21, "generic-exception-handlers"]], "Unhandled Exceptions": [[21, "unhandled-exceptions"]], "Custom Error Pages": [[21, "custom-error-pages"]], "Further Examples": [[21, "further-examples"]], "Returning API Errors as JSON": [[21, "returning-api-errors-as-json"]], "Logging": [[21, "logging"], [27, "logging"], [53, "logging"]], "Debugging": [[21, "debugging"]], "Flask Extension Development": [[22, "flask-extension-development"]], "Naming": [[22, "naming"]], "The Extension Class and Initialization": [[22, "the-extension-class-and-initialization"]], "Adding Behavior": [[22, "adding-behavior"]], "Configuration Techniques": [[22, "configuration-techniques"]], "Data During a Request": [[22, "data-during-a-request"]], "Views and Models": [[22, "views-and-models"]], "Recommended Extension Guidelines": [[22, "recommended-extension-guidelines"]], "Finding Extensions": [[23, "finding-extensions"]], "Using Extensions": [[23, "using-extensions"]], "Building Extensions": [[23, "building-extensions"]], "Welcome to Flask": [[24, "welcome-to-flask"]], "User\u2019s Guide": [[24, "user-s-guide"]], "API Reference": [[24, "api-reference"]], "Additional Notes": [[24, "additional-notes"]], "Installation": [[25, "installation"]], "Python Version": [[25, "python-version"]], "Dependencies": [[25, "dependencies"]], "Optional dependencies": [[25, "optional-dependencies"]], "greenlet": [[25, "greenlet"]], "Virtual environments": [[25, "virtual-environments"]], "Create an environment": [[25, "create-an-environment"]], "Activate the environment": [[25, "activate-the-environment"]], "Install Flask": [[25, "install-flask"]], "License": [[26, "license"]], "BSD-3-Clause Source License": [[26, "bsd-3-clause-source-license"]], "Artwork License": [[26, "artwork-license"]], "Basic Configuration": [[27, "basic-configuration"]], "Default Configuration": [[27, "default-configuration"]], "Removing the Default Handler": [[27, "removing-the-default-handler"]], "Email Errors to Admins": [[27, "email-errors-to-admins"]], "Injecting Request Information": [[27, "injecting-request-information"]], "Other Libraries": [[27, "other-libraries"]], "Werkzeug": [[27, "werkzeug"]], "Flask Extensions": [[27, "flask-extensions"]], "Application Dispatching": [[28, "application-dispatching"]], "Working with this Document": [[28, "working-with-this-document"]], "Combining Applications": [[28, "combining-applications"]], "Dispatch by Subdomain": [[28, "dispatch-by-subdomain"]], "Dispatch by Path": [[28, "dispatch-by-path"]], "Application Factories": [[29, "application-factories"]], "Basic Factories": [[29, "basic-factories"]], "Factories & Extensions": [[29, "factories-extensions"]], "Using Applications": [[29, "using-applications"]], "Factory Improvements": [[29, "factory-improvements"]], "Caching": [[30, "caching"]], "Celery Background Tasks": [[31, "celery-background-tasks"]], "Install": [[31, "install"]], "Configure": [[31, "configure"]], "An example task": [[31, "an-example-task"]], "Run a worker": [[31, "run-a-worker"]], "Deferred Request Callbacks": [[32, "deferred-request-callbacks"]], "Adding a favicon": [[33, "adding-a-favicon"]], "See also": [[33, "see-also"]], "Uploading Files": [[34, "uploading-files"]], "A Gentle Introduction": [[34, "a-gentle-introduction"]], "Information for the Pros": [[34, null]], "Improving Uploads": [[34, "improving-uploads"]], "Connection Reset Issue": [[34, null]], "Upload Progress Bars": [[34, "upload-progress-bars"]], "An Easier Solution": [[34, "an-easier-solution"]], "Simple Flashing": [[35, "simple-flashing"]], "Flashing With Categories": [[35, "flashing-with-categories"]], "Filtering Flash Messages": [[35, "filtering-flash-messages"]], "Patterns for Flask": [[36, "patterns-for-flask"]], "JavaScript, fetch, and JSON": [[37, "javascript-fetch-and-json"]], "Rendering Templates": [[37, "rendering-templates"], [53, "rendering-templates"]], "Generating URLs": [[37, "generating-urls"]], "Making a Request with fetch": [[37, "making-a-request-with-fetch"]], "Following Redirects": [[37, "following-redirects"], [60, "following-redirects"]], "Replacing Content": [[37, "replacing-content"]], "Return JSON from Views": [[37, "return-json-from-views"]], "Receiving JSON in Views": [[37, "receiving-json-in-views"]], "AJAX with jQuery": [[38, "ajax-with-jquery"]], "Lazily Loading Views": [[39, "lazily-loading-views"]], "Converting to Centralized URL Map": [[39, "converting-to-centralized-url-map"]], "Loading Late": [[39, "loading-late"]], "Adding HTTP Method Overrides": [[40, "adding-http-method-overrides"]], "MongoDB with MongoEngine": [[41, "mongodb-with-mongoengine"]], "Mapping Documents": [[41, "mapping-documents"]], "Creating Data": [[41, "creating-data"]], "Queries": [[41, "queries"]], "Documentation": [[41, "documentation"]], "Large Applications as Packages": [[42, "large-applications-as-packages"]], "Simple Packages": [[42, "simple-packages"]], "Circular Imports": [[42, null]], "Working with Blueprints": [[42, "working-with-blueprints"]], "Request Content Checksums": [[43, "request-content-checksums"]], "Single-Page Applications": [[44, "single-page-applications"]], "SQLAlchemy in Flask": [[45, "sqlalchemy-in-flask"]], "Flask-SQLAlchemy Extension": [[45, "flask-sqlalchemy-extension"]], "Declarative": [[45, "declarative"]], "Manual Object Relational Mapping": [[45, "manual-object-relational-mapping"]], "SQL Abstraction Layer": [[45, "sql-abstraction-layer"]], "Using SQLite 3 with Flask": [[46, "using-sqlite-3-with-flask"]], "Connect on Demand": [[46, "connect-on-demand"]], "Easy Querying": [[46, "easy-querying"]], "Initial Schemas": [[46, "initial-schemas"]], "Streaming Contents": [[47, "streaming-contents"]], "Basic Usage": [[47, "basic-usage"]], "Streaming from Templates": [[47, "streaming-from-templates"]], "Streaming with Context": [[47, "streaming-with-context"]], "Subclassing Flask": [[48, "subclassing-flask"]], "Template Inheritance": [[49, "template-inheritance"]], "Base Template": [[49, "base-template"]], "Child Template": [[49, "child-template"]], "Using URL Processors": [[50, "using-url-processors"]], "Internationalized Application URLs": [[50, "internationalized-application-urls"]], "Internationalized Blueprint URLs": [[50, "internationalized-blueprint-urls"]], "View Decorators": [[51, "view-decorators"], [73, "view-decorators"]], "Login Required Decorator": [[51, "login-required-decorator"]], "Caching Decorator": [[51, "caching-decorator"]], "Templating Decorator": [[51, "templating-decorator"]], "Endpoint Decorator": [[51, "endpoint-decorator"]], "Form Validation with WTForms": [[52, "form-validation-with-wtforms"]], "Getting the most out of WTForms with an Extension": [[52, null]], "The Forms": [[52, "the-forms"]], "In the View": [[52, "in-the-view"]], "Forms in Templates": [[52, "forms-in-templates"]], "Quickstart": [[53, "quickstart"]], "A Minimal Application": [[53, "a-minimal-application"]], "Application Discovery Behavior": [[53, null]], "Externally Visible Server": [[53, "public-server"]], "HTML Escaping": [[53, "html-escaping"]], "Routing": [[53, "routing"]], "Variable Rules": [[53, "variable-rules"]], "Unique URLs / Redirection Behavior": [[53, "unique-urls-redirection-behavior"]], "URL Building": [[53, "url-building"]], "HTTP Methods": [[53, "http-methods"]], "Accessing Request Data": [[53, "accessing-request-data"]], "Context Locals": [[53, "context-locals"]], "Insider Information": [[53, null]], "The Request Object": [[53, "the-request-object"]], "File Uploads": [[53, "file-uploads"]], "Cookies": [[53, "cookies"]], "Redirects and Errors": [[53, "redirects-and-errors"]], "About Responses": [[53, "about-responses"]], "APIs with JSON": [[53, "apis-with-json"]], "How to generate good secret keys": [[53, null]], "Hooking in WSGI Middleware": [[53, "hooking-in-wsgi-middleware"]], "Using Flask Extensions": [[53, "using-flask-extensions"]], "Deploying to a Web Server": [[53, "deploying-to-a-web-server"]], "The Request Context": [[54, "the-request-context"]], "How the Context Works": [[54, "how-the-context-works"]], "Callbacks and Errors": [[54, "callbacks-and-errors"]], "Teardown Callbacks": [[54, "teardown-callbacks"]], "Notes On Proxies": [[54, "notes-on-proxies"]], "Security Considerations": [[55, "security-considerations"]], "Cross-Site Scripting (XSS)": [[55, "cross-site-scripting-xss"]], "Cross-Site Request Forgery (CSRF)": [[55, "cross-site-request-forgery-csrf"]], "JSON Security": [[55, "json-security"]], "Security Headers": [[55, "security-headers"]], "HTTP Strict Transport Security (HSTS)": [[55, "http-strict-transport-security-hsts"]], "Content Security Policy (CSP)": [[55, "content-security-policy-csp"]], "X-Content-Type-Options": [[55, "x-content-type-options"]], "X-Frame-Options": [[55, "x-frame-options"]], "Set-Cookie options": [[55, "set-cookie-options"]], "HTTP Public Key Pinning (HPKP)": [[55, "http-public-key-pinning-hpkp"]], "Copy/Paste to Terminal": [[55, "copy-paste-to-terminal"]], "Development Server": [[56, "development-server"]], "Command Line": [[56, "command-line"]], "Address already in use": [[56, "address-already-in-use"]], "Deferred Errors on Reload": [[56, "deferred-errors-on-reload"]], "In Code": [[56, "in-code"]], "Working with the Shell": [[57, "working-with-the-shell"]], "Creating a Request Context": [[57, "creating-a-request-context"]], "Firing Before/After Request": [[57, "firing-before-after-request"]], "Further Improving the Shell Experience": [[57, "further-improving-the-shell-experience"]], "Subscribing to Signals": [[58, "subscribing-to-signals"]], "Blinker API Changes": [[58, null]], "Creating Signals": [[58, "creating-signals"]], "For Extension Developers": [[58, null]], "Sending Signals": [[58, "sending-signals"]], "Passing Proxies as Senders": [[58, null]], "Signals and Flask\u2019s Request Context": [[58, "signals-and-flask-s-request-context"]], "Decorator Based Signal Subscriptions": [[58, "decorator-based-signal-subscriptions"]], "Core Signals": [[58, "core-signals"]], "Jinja Setup": [[59, "jinja-setup"]], "Standard Context": [[59, "standard-context"]], "The Jinja Context Behavior": [[59, null]], "Controlling Autoescaping": [[59, "controlling-autoescaping"]], "Registering Filters": [[59, "registering-filters"]], "Context Processors": [[59, "context-processors"]], "Streaming": [[59, "streaming"]], "Testing Flask Applications": [[60, "testing-flask-applications"]], "Identifying Tests": [[60, "identifying-tests"]], "Fixtures": [[60, "fixtures"]], "Sending Requests with the Test Client": [[60, "sending-requests-with-the-test-client"]], "Form Data": [[60, "form-data"]], "JSON Data": [[60, "json-data"]], "Accessing and Modifying the Session": [[60, "accessing-and-modifying-the-session"]], "Running Commands with the CLI Runner": [[60, "running-commands-with-the-cli-runner"]], "Tests that depend on an Active Context": [[60, "tests-that-depend-on-an-active-context"]], "Blog Blueprint": [[61, "blog-blueprint"]], "The Blueprint": [[61, "the-blueprint"]], "Index": [[61, "index"]], "Create": [[61, "create"]], "Update": [[61, "update"]], "Delete": [[61, "delete"]], "Define and Access the Database": [[62, "define-and-access-the-database"]], "Connect to the Database": [[62, "connect-to-the-database"]], "Create the Tables": [[62, "create-the-tables"]], "Register with the Application": [[62, "register-with-the-application"]], "Initialize the Database File": [[62, "initialize-the-database-file"]], "Deploy to Production": [[63, "deploy-to-production"]], "Build and Install": [[63, "build-and-install"]], "Configure the Secret Key": [[63, "configure-the-secret-key"]], "Run with a Production Server": [[63, "run-with-a-production-server"]], "Application Setup": [[64, "application-setup"]], "The Application Factory": [[64, "the-application-factory"]], "Run The Application": [[64, "run-the-application"]], "Tutorial": [[65, "tutorial"]], "Contents:": [[65, null]], "Make the Project Installable": [[66, "make-the-project-installable"]], "Describe the Project": [[66, "describe-the-project"]], "Install the Project": [[66, "install-the-project"]], "Project Layout": [[67, "project-layout"]], "Keep Developing!": [[68, "keep-developing"]], "The Base Layout": [[70, "the-base-layout"]], "Register": [[70, "register"]], "Log In": [[70, "log-in"]], "Register A User": [[70, "register-a-user"]], "Test Coverage": [[71, "test-coverage"]], "Setup and Fixtures": [[71, "setup-and-fixtures"]], "Factory": [[71, "factory"]], "Database": [[71, "database"]], "Authentication": [[71, "authentication"]], "Blog": [[71, "blog"]], "Running the Tests": [[71, "running-the-tests"]], "Blueprints and Views": [[72, "blueprints-and-views"]], "Create a Blueprint": [[72, "create-a-blueprint"]], "The First View: Register": [[72, "the-first-view-register"]], "Login": [[72, "login"]], "Logout": [[72, "logout"]], "Require Authentication in Other Views": [[72, "require-authentication-in-other-views"]], "Endpoints and URLs": [[72, "endpoints-and-urls"]], "Class-based Views": [[73, "class-based-views"]], "Basic Reusable View": [[73, "basic-reusable-view"]], "URL Variables": [[73, "url-variables"]], "View Lifetime and self": [[73, "view-lifetime-and-self"]], "Method Hints": [[73, "method-hints"]], "Method Dispatching and APIs": [[73, "method-dispatching-and-apis"]]}, "indexentries": {"appcontext (class in flask.ctx)": [[0, "flask.ctx.AppContext"]], "appgroup (class in flask.cli)": [[0, "flask.cli.AppGroup"]], "blueprint (class in flask)": [[0, "flask.Blueprint"]], "blueprintsetupstate (class in flask.blueprints)": [[0, "flask.blueprints.BlueprintSetupState"]], "config (class in flask)": [[0, "flask.Config"]], "defaultjsonprovider (class in flask.json.provider)": [[0, "flask.json.provider.DefaultJSONProvider"]], "flask_debug": [[0, "index-0"]], "flask (class in flask)": [[0, "flask.Flask"]], "flaskclirunner (class in flask.testing)": [[0, "flask.testing.FlaskCliRunner"]], "flaskclient (class in flask.testing)": [[0, "flask.testing.FlaskClient"]], "flaskgroup (class in flask.cli)": [[0, "flask.cli.FlaskGroup"]], "jsondecoder (class in flask.json)": [[0, "flask.json.JSONDecoder"]], "jsonencoder (class in flask.json)": [[0, "flask.json.JSONEncoder"]], "jsonprovider (class in flask.json.provider)": [[0, "flask.json.provider.JSONProvider"]], "jsontag (class in flask.json.tag)": [[0, "flask.json.tag.JSONTag"]], "markup (class in flask)": [[0, "flask.Markup"]], "methodview (class in flask.views)": [[0, "flask.views.MethodView"]], "nullsession (class in flask.sessions)": [[0, "flask.sessions.NullSession"]], "rfc": [[0, "index-1"], [0, "index-2"], [0, "index-3"], [4, "index-3"], [4, "index-4"]], "rfc 2231": [[0, "index-1"]], "rfc 822": [[0, "index-2"], [0, "index-3"]], "request (class in flask)": [[0, "flask.Request"]], "requestcontext (class in flask.ctx)": [[0, "flask.ctx.RequestContext"]], "response (class in flask)": [[0, "flask.Response"]], "scriptinfo (class in flask.cli)": [[0, "flask.cli.ScriptInfo"]], "securecookiesession (class in flask.sessions)": [[0, "flask.sessions.SecureCookieSession"]], "securecookiesessioninterface (class in flask.sessions)": [[0, "flask.sessions.SecureCookieSessionInterface"]], "sessioninterface (class in flask.sessions)": [[0, "flask.sessions.SessionInterface"]], "sessionmixin (class in flask.sessions)": [[0, "flask.sessions.SessionMixin"]], "taggedjsonserializer (class in flask.json.tag)": [[0, "flask.json.tag.TaggedJSONSerializer"]], "view (class in flask.views)": [[0, "flask.views.View"]], "_appctxglobals (class in flask.ctx)": [[0, "flask.ctx._AppCtxGlobals"]], "abort() (in module flask)": [[0, "flask.abort"]], "aborter (flask.flask attribute)": [[0, "flask.Flask.aborter"]], "aborter_class (flask.flask attribute)": [[0, "flask.Flask.aborter_class"]], "accept_charsets (flask.request property)": [[0, "flask.Request.accept_charsets"]], "accept_encodings (flask.request property)": [[0, "flask.Request.accept_encodings"]], "accept_languages (flask.request property)": [[0, "flask.Request.accept_languages"]], "accept_mimetypes (flask.request property)": [[0, "flask.Request.accept_mimetypes"]], "accept_ranges (flask.response attribute)": [[0, "flask.Response.accept_ranges"]], "access_control_allow_credentials (flask.response property)": [[0, "flask.Response.access_control_allow_credentials"]], "access_control_allow_headers (flask.response attribute)": [[0, "flask.Response.access_control_allow_headers"]], "access_control_allow_methods (flask.response attribute)": [[0, "flask.Response.access_control_allow_methods"]], "access_control_allow_origin (flask.response attribute)": [[0, "flask.Response.access_control_allow_origin"]], "access_control_expose_headers (flask.response attribute)": [[0, "flask.Response.access_control_expose_headers"]], "access_control_max_age (flask.response attribute)": [[0, "flask.Response.access_control_max_age"]], "access_control_request_headers (flask.request attribute)": [[0, "flask.Request.access_control_request_headers"]], "access_control_request_method (flask.request attribute)": [[0, "flask.Request.access_control_request_method"]], "access_route (flask.request property)": [[0, "flask.Request.access_route"]], "accessed (flask.sessions.securecookiesession attribute)": [[0, "flask.sessions.SecureCookieSession.accessed"]], "accessed (flask.sessions.sessionmixin attribute)": [[0, "flask.sessions.SessionMixin.accessed"]], "add_app_template_filter() (flask.blueprint method)": [[0, "flask.Blueprint.add_app_template_filter"]], "add_app_template_global() (flask.blueprint method)": [[0, "flask.Blueprint.add_app_template_global"]], "add_app_template_test() (flask.blueprint method)": [[0, "flask.Blueprint.add_app_template_test"]], "add_etag() (flask.response method)": [[0, "flask.Response.add_etag"]], "add_template_filter() (flask.flask method)": [[0, "flask.Flask.add_template_filter"]], "add_template_global() (flask.flask method)": [[0, "flask.Flask.add_template_global"]], "add_template_test() (flask.flask method)": [[0, "flask.Flask.add_template_test"]], "add_url_rule() (flask.blueprint method)": [[0, "flask.Blueprint.add_url_rule"]], "add_url_rule() (flask.flask method)": [[0, "flask.Flask.add_url_rule"]], "add_url_rule() (flask.blueprints.blueprintsetupstate method)": [[0, "flask.blueprints.BlueprintSetupState.add_url_rule"]], "after_app_request() (flask.blueprint method)": [[0, "flask.Blueprint.after_app_request"]], "after_request() (flask.blueprint method)": [[0, "flask.Blueprint.after_request"]], "after_request() (flask.flask method)": [[0, "flask.Flask.after_request"]], "after_request_funcs (flask.blueprint attribute)": [[0, "flask.Blueprint.after_request_funcs"]], "after_request_funcs (flask.flask attribute)": [[0, "flask.Flask.after_request_funcs"]], "after_this_request() (in module flask)": [[0, "flask.after_this_request"]], "age (flask.response attribute)": [[0, "flask.Response.age"]], "allow (flask.response property)": [[0, "flask.Response.allow"]], "app (flask.blueprints.blueprintsetupstate attribute)": [[0, "flask.blueprints.BlueprintSetupState.app"]], "app_context() (flask.flask method)": [[0, "flask.Flask.app_context"]], "app_context_processor() (flask.blueprint method)": [[0, "flask.Blueprint.app_context_processor"]], "app_ctx_globals_class (flask.flask attribute)": [[0, "flask.Flask.app_ctx_globals_class"]], "app_errorhandler() (flask.blueprint method)": [[0, "flask.Blueprint.app_errorhandler"]], "app_import_path (flask.cli.scriptinfo attribute)": [[0, "flask.cli.ScriptInfo.app_import_path"]], "app_template_filter() (flask.blueprint method)": [[0, "flask.Blueprint.app_template_filter"]], "app_template_global() (flask.blueprint method)": [[0, "flask.Blueprint.app_template_global"]], "app_template_test() (flask.blueprint method)": [[0, "flask.Blueprint.app_template_test"]], "app_url_defaults() (flask.blueprint method)": [[0, "flask.Blueprint.app_url_defaults"]], "app_url_value_preprocessor() (flask.blueprint method)": [[0, "flask.Blueprint.app_url_value_preprocessor"]], "appcontext_popped (in module flask)": [[0, "flask.appcontext_popped"]], "appcontext_pushed (in module flask)": [[0, "flask.appcontext_pushed"]], "appcontext_tearing_down (in module flask)": [[0, "flask.appcontext_tearing_down"]], "application() (flask.request class method)": [[0, "flask.Request.application"]], "args (flask.request property)": [[0, "flask.Request.args"]], "as_view() (flask.views.view class method)": [[0, "flask.views.View.as_view"]], "async_to_sync() (flask.flask method)": [[0, "flask.Flask.async_to_sync"]], "authorization (flask.request property)": [[0, "flask.Request.authorization"]], "auto_find_instance_path() (flask.flask method)": [[0, "flask.Flask.auto_find_instance_path"]], "autocorrect_location_header (flask.response attribute)": [[0, "flask.Response.autocorrect_location_header"]], "automatically_set_content_length (flask.response attribute)": [[0, "flask.Response.automatically_set_content_length"]], "base_url (flask.request property)": [[0, "flask.Request.base_url"]], "before_app_first_request() (flask.blueprint method)": [[0, "flask.Blueprint.before_app_first_request"]], "before_app_request() (flask.blueprint method)": [[0, "flask.Blueprint.before_app_request"]], "before_first_request() (flask.flask method)": [[0, "flask.Flask.before_first_request"]], "before_first_request_funcs (flask.flask attribute)": [[0, "flask.Flask.before_first_request_funcs"]], "before_request() (flask.blueprint method)": [[0, "flask.Blueprint.before_request"]], "before_request() (flask.flask method)": [[0, "flask.Flask.before_request"]], "before_request_funcs (flask.blueprint attribute)": [[0, "flask.Blueprint.before_request_funcs"]], "before_request_funcs (flask.flask attribute)": [[0, "flask.Flask.before_request_funcs"]], "blueprint (flask.request property)": [[0, "flask.Request.blueprint"]], "blueprint (flask.blueprints.blueprintsetupstate attribute)": [[0, "flask.blueprints.BlueprintSetupState.blueprint"]], "blueprints (flask.flask attribute)": [[0, "flask.Flask.blueprints"]], "blueprints (flask.request property)": [[0, "flask.Request.blueprints"]], "cache_control (flask.request property)": [[0, "flask.Request.cache_control"]], "cache_control (flask.response property)": [[0, "flask.Response.cache_control"]], "calculate_content_length() (flask.response method)": [[0, "flask.Response.calculate_content_length"]], "call_on_close() (flask.response method)": [[0, "flask.Response.call_on_close"]], "charset (flask.request attribute)": [[0, "flask.Request.charset"]], "charset (flask.response attribute)": [[0, "flask.Response.charset"]], "check() (flask.json.tag.jsontag method)": [[0, "flask.json.tag.JSONTag.check"]], "clear() (flask.sessions.nullsession method)": [[0, "flask.sessions.NullSession.clear"]], "cli (flask.blueprint attribute)": [[0, "flask.Blueprint.cli"]], "cli (flask.flask attribute)": [[0, "flask.Flask.cli"]], "close() (flask.request method)": [[0, "flask.Request.close"]], "close() (flask.response method)": [[0, "flask.Response.close"]], "command() (flask.cli.appgroup method)": [[0, "flask.cli.AppGroup.command"]], "compact (flask.json.provider.defaultjsonprovider attribute)": [[0, "flask.json.provider.DefaultJSONProvider.compact"]], "config (flask.flask attribute)": [[0, "flask.Flask.config"]], "config_class (flask.flask attribute)": [[0, "flask.Flask.config_class"]], "content_encoding (flask.request attribute)": [[0, "flask.Request.content_encoding"]], "content_encoding (flask.response attribute)": [[0, "flask.Response.content_encoding"]], "content_language (flask.response property)": [[0, "flask.Response.content_language"]], "content_length (flask.request property)": [[0, "flask.Request.content_length"]], "content_length (flask.response attribute)": [[0, "flask.Response.content_length"]], "content_location (flask.response attribute)": [[0, "flask.Response.content_location"]], "content_md5 (flask.request attribute)": [[0, "flask.Request.content_md5"]], "content_md5 (flask.response attribute)": [[0, "flask.Response.content_md5"]], "content_range (flask.response property)": [[0, "flask.Response.content_range"]], "content_security_policy (flask.response property)": [[0, "flask.Response.content_security_policy"]], "content_security_policy_report_only (flask.response property)": [[0, "flask.Response.content_security_policy_report_only"]], "content_type (flask.request attribute)": [[0, "flask.Request.content_type"]], "content_type (flask.response attribute)": [[0, "flask.Response.content_type"]], "context_processor() (flask.blueprint method)": [[0, "flask.Blueprint.context_processor"]], "context_processor() (flask.flask method)": [[0, "flask.Flask.context_processor"]], "cookies (flask.request property)": [[0, "flask.Request.cookies"]], "copy() (flask.ctx.requestcontext method)": [[0, "flask.ctx.RequestContext.copy"]], "copy_current_request_context() (in module flask)": [[0, "flask.copy_current_request_context"]], "create_app (flask.cli.scriptinfo attribute)": [[0, "flask.cli.ScriptInfo.create_app"]], "create_global_jinja_loader() (flask.flask method)": [[0, "flask.Flask.create_global_jinja_loader"]], "create_jinja_environment() (flask.flask method)": [[0, "flask.Flask.create_jinja_environment"]], "create_url_adapter() (flask.flask method)": [[0, "flask.Flask.create_url_adapter"]], "cross_origin_embedder_policy (flask.response attribute)": [[0, "flask.Response.cross_origin_embedder_policy"]], "cross_origin_opener_policy (flask.response attribute)": [[0, "flask.Response.cross_origin_opener_policy"]], "current_app (in module flask)": [[0, "flask.current_app"]], "data (flask.request property)": [[0, "flask.Request.data"]], "data (flask.response property)": [[0, "flask.Response.data"]], "data (flask.cli.scriptinfo attribute)": [[0, "flask.cli.ScriptInfo.data"]], "date (flask.request attribute)": [[0, "flask.Request.date"]], "date (flask.response attribute)": [[0, "flask.Response.date"]], "debug (flask.flask property)": [[0, "flask.Flask.debug"]], "decorators (flask.views.view attribute)": [[0, "flask.views.View.decorators"]], "default() (flask.json.jsonencoder method)": [[0, "flask.json.JSONEncoder.default"]], "default() (flask.json.provider.defaultjsonprovider static method)": [[0, "flask.json.provider.DefaultJSONProvider.default"]], "default_config (flask.flask attribute)": [[0, "flask.Flask.default_config"]], "default_mimetype (flask.response attribute)": [[0, "flask.Response.default_mimetype"]], "default_status (flask.response attribute)": [[0, "flask.Response.default_status"]], "default_tags (flask.json.tag.taggedjsonserializer attribute)": [[0, "flask.json.tag.TaggedJSONSerializer.default_tags"]], "delete() (flask.blueprint method)": [[0, "flask.Blueprint.delete"]], "delete() (flask.flask method)": [[0, "flask.Flask.delete"]], "delete_cookie() (flask.response method)": [[0, "flask.Response.delete_cookie"]], "dict_storage_class (flask.request attribute)": [[0, "flask.Request.dict_storage_class"]], "digest_method() (flask.sessions.securecookiesessioninterface static method)": [[0, "flask.sessions.SecureCookieSessionInterface.digest_method"]], "direct_passthrough (flask.response attribute)": [[0, "flask.Response.direct_passthrough"]], "dispatch_request() (flask.flask method)": [[0, "flask.Flask.dispatch_request"]], "dispatch_request() (flask.views.methodview method)": [[0, "flask.views.MethodView.dispatch_request"]], "dispatch_request() (flask.views.view method)": [[0, "flask.views.View.dispatch_request"]], "do_teardown_appcontext() (flask.flask method)": [[0, "flask.Flask.do_teardown_appcontext"]], "do_teardown_request() (flask.flask method)": [[0, "flask.Flask.do_teardown_request"]], "dump() (flask.json.provider.jsonprovider method)": [[0, "flask.json.provider.JSONProvider.dump"]], "dump() (in module flask.json)": [[0, "flask.json.dump"]], "dumps() (flask.json.provider.defaultjsonprovider method)": [[0, "flask.json.provider.DefaultJSONProvider.dumps"]], "dumps() (flask.json.provider.jsonprovider method)": [[0, "flask.json.provider.JSONProvider.dumps"]], "dumps() (flask.json.tag.taggedjsonserializer method)": [[0, "flask.json.tag.TaggedJSONSerializer.dumps"]], "dumps() (in module flask.json)": [[0, "flask.json.dumps"]], "encoding_errors (flask.request attribute)": [[0, "flask.Request.encoding_errors"]], "endpoint (flask.request property)": [[0, "flask.Request.endpoint"]], "endpoint() (flask.blueprint method)": [[0, "flask.Blueprint.endpoint"]], "endpoint() (flask.flask method)": [[0, "flask.Flask.endpoint"]], "ensure_ascii (flask.json.provider.defaultjsonprovider attribute)": [[0, "flask.json.provider.DefaultJSONProvider.ensure_ascii"]], "ensure_sync() (flask.flask method)": [[0, "flask.Flask.ensure_sync"]], "env (flask.flask property)": [[0, "flask.Flask.env"]], "environ (flask.request attribute)": [[0, "flask.Request.environ"]], "environment variable": [[0, "index-0"], [6, "index-0"], [6, "index-1"]], "error_handler_spec (flask.blueprint attribute)": [[0, "flask.Blueprint.error_handler_spec"]], "error_handler_spec (flask.flask attribute)": [[0, "flask.Flask.error_handler_spec"]], "errorhandler() (flask.blueprint method)": [[0, "flask.Blueprint.errorhandler"]], "errorhandler() (flask.flask method)": [[0, "flask.Flask.errorhandler"]], "escape() (flask.markup class method)": [[0, "flask.Markup.escape"]], "escape() (in module flask)": [[0, "flask.escape"]], "expires (flask.response attribute)": [[0, "flask.Response.expires"]], "extensions (flask.flask attribute)": [[0, "flask.Flask.extensions"]], "files (flask.request property)": [[0, "flask.Request.files"]], "first_registration (flask.blueprints.blueprintsetupstate attribute)": [[0, "flask.blueprints.BlueprintSetupState.first_registration"]], "flash() (in module flask)": [[0, "flask.flash"]], "flask": [[0, "module-flask"]], "flask.globals.app_ctx (in module flask)": [[0, "flask.flask.globals.app_ctx"]], "flask.globals.request_ctx (in module flask)": [[0, "flask.flask.globals.request_ctx"]], "flask.json": [[0, "module-flask.json"]], "flask.json.tag": [[0, "module-flask.json.tag"]], "force_type() (flask.response class method)": [[0, "flask.Response.force_type"]], "form (flask.request property)": [[0, "flask.Request.form"]], "form_data_parser_class (flask.request attribute)": [[0, "flask.Request.form_data_parser_class"]], "freeze() (flask.response method)": [[0, "flask.Response.freeze"]], "from_app() (flask.response class method)": [[0, "flask.Response.from_app"]], "from_envvar() (flask.config method)": [[0, "flask.Config.from_envvar"]], "from_file() (flask.config method)": [[0, "flask.Config.from_file"]], "from_mapping() (flask.config method)": [[0, "flask.Config.from_mapping"]], "from_object() (flask.config method)": [[0, "flask.Config.from_object"]], "from_prefixed_env() (flask.config method)": [[0, "flask.Config.from_prefixed_env"]], "from_pyfile() (flask.config method)": [[0, "flask.Config.from_pyfile"]], "from_values() (flask.request class method)": [[0, "flask.Request.from_values"]], "full_dispatch_request() (flask.flask method)": [[0, "flask.Flask.full_dispatch_request"]], "full_path (flask.request property)": [[0, "flask.Request.full_path"]], "g (in module flask)": [[0, "flask.g"]], "get() (flask.blueprint method)": [[0, "flask.Blueprint.get"]], "get() (flask.flask method)": [[0, "flask.Flask.get"]], "get() (flask.ctx._appctxglobals method)": [[0, "flask.ctx._AppCtxGlobals.get"]], "get() (flask.sessions.securecookiesession method)": [[0, "flask.sessions.SecureCookieSession.get"]], "get_app_iter() (flask.response method)": [[0, "flask.Response.get_app_iter"]], "get_command() (flask.cli.flaskgroup method)": [[0, "flask.cli.FlaskGroup.get_command"]], "get_cookie_domain() (flask.sessions.sessioninterface method)": [[0, "flask.sessions.SessionInterface.get_cookie_domain"]], "get_cookie_httponly() (flask.sessions.sessioninterface method)": [[0, "flask.sessions.SessionInterface.get_cookie_httponly"]], "get_cookie_name() (flask.sessions.sessioninterface method)": [[0, "flask.sessions.SessionInterface.get_cookie_name"]], "get_cookie_path() (flask.sessions.sessioninterface method)": [[0, "flask.sessions.SessionInterface.get_cookie_path"]], "get_cookie_samesite() (flask.sessions.sessioninterface method)": [[0, "flask.sessions.SessionInterface.get_cookie_samesite"]], "get_cookie_secure() (flask.sessions.sessioninterface method)": [[0, "flask.sessions.SessionInterface.get_cookie_secure"]], "get_data() (flask.request method)": [[0, "flask.Request.get_data"]], "get_data() (flask.response method)": [[0, "flask.Response.get_data"]], "get_etag() (flask.response method)": [[0, "flask.Response.get_etag"]], "get_expiration_time() (flask.sessions.sessioninterface method)": [[0, "flask.sessions.SessionInterface.get_expiration_time"]], "get_flashed_messages() (in module flask)": [[0, "flask.get_flashed_messages"]], "get_json() (flask.request method)": [[0, "flask.Request.get_json"]], "get_json() (flask.response method)": [[0, "flask.Response.get_json"]], "get_namespace() (flask.config method)": [[0, "flask.Config.get_namespace"]], "get_send_file_max_age() (flask.blueprint method)": [[0, "flask.Blueprint.get_send_file_max_age"]], "get_send_file_max_age() (flask.flask method)": [[0, "flask.Flask.get_send_file_max_age"]], "get_template_attribute() (in module flask)": [[0, "flask.get_template_attribute"]], "get_wsgi_headers() (flask.response method)": [[0, "flask.Response.get_wsgi_headers"]], "get_wsgi_response() (flask.response method)": [[0, "flask.Response.get_wsgi_response"]], "got_first_request (flask.flask property)": [[0, "flask.Flask.got_first_request"]], "got_request_exception (in module flask)": [[0, "flask.got_request_exception"]], "group() (flask.cli.appgroup method)": [[0, "flask.cli.AppGroup.group"]], "handle_exception() (flask.flask method)": [[0, "flask.Flask.handle_exception"]], "handle_http_exception() (flask.flask method)": [[0, "flask.Flask.handle_http_exception"]], "handle_url_build_error() (flask.flask method)": [[0, "flask.Flask.handle_url_build_error"]], "handle_user_exception() (flask.flask method)": [[0, "flask.Flask.handle_user_exception"]], "has_app_context() (in module flask)": [[0, "flask.has_app_context"]], "has_request_context() (in module flask)": [[0, "flask.has_request_context"]], "has_static_folder (flask.blueprint property)": [[0, "flask.Blueprint.has_static_folder"]], "has_static_folder (flask.flask property)": [[0, "flask.Flask.has_static_folder"]], "headers (flask.request attribute)": [[0, "flask.Request.headers"]], "host (flask.request property)": [[0, "flask.Request.host"]], "host_url (flask.request property)": [[0, "flask.Request.host_url"]], "if_match (flask.request property)": [[0, "flask.Request.if_match"]], "if_modified_since (flask.request property)": [[0, "flask.Request.if_modified_since"]], "if_none_match (flask.request property)": [[0, "flask.Request.if_none_match"]], "if_range (flask.request property)": [[0, "flask.Request.if_range"]], "if_unmodified_since (flask.request property)": [[0, "flask.Request.if_unmodified_since"]], "implicit_sequence_conversion (flask.response attribute)": [[0, "flask.Response.implicit_sequence_conversion"]], "import_name (flask.blueprint attribute)": [[0, "flask.Blueprint.import_name"]], "import_name (flask.flask attribute)": [[0, "flask.Flask.import_name"]], "init_every_request (flask.views.view attribute)": [[0, "flask.views.View.init_every_request"]], "inject_url_defaults() (flask.flask method)": [[0, "flask.Flask.inject_url_defaults"]], "input_stream (flask.request attribute)": [[0, "flask.Request.input_stream"]], "instance_path (flask.flask attribute)": [[0, "flask.Flask.instance_path"]], "invoke() (flask.testing.flaskclirunner method)": [[0, "flask.testing.FlaskCliRunner.invoke"]], "is_json (flask.request property)": [[0, "flask.Request.is_json"]], "is_json (flask.response property)": [[0, "flask.Response.is_json"]], "is_multiprocess (flask.request attribute)": [[0, "flask.Request.is_multiprocess"]], "is_multithread (flask.request attribute)": [[0, "flask.Request.is_multithread"]], "is_null_session() (flask.sessions.sessioninterface method)": [[0, "flask.sessions.SessionInterface.is_null_session"]], "is_run_once (flask.request attribute)": [[0, "flask.Request.is_run_once"]], "is_secure (flask.request property)": [[0, "flask.Request.is_secure"]], "is_sequence (flask.response property)": [[0, "flask.Response.is_sequence"]], "is_streamed (flask.response property)": [[0, "flask.Response.is_streamed"]], "iter_blueprints() (flask.flask method)": [[0, "flask.Flask.iter_blueprints"]], "iter_encoded() (flask.response method)": [[0, "flask.Response.iter_encoded"]], "jinja_env (flask.flask property)": [[0, "flask.Flask.jinja_env"]], "jinja_environment (flask.flask attribute)": [[0, "flask.Flask.jinja_environment"]], "jinja_loader (flask.blueprint property)": [[0, "flask.Blueprint.jinja_loader"]], "jinja_loader (flask.flask property)": [[0, "flask.Flask.jinja_loader"]], "jinja_options (flask.flask attribute)": [[0, "flask.Flask.jinja_options"]], "json (flask.flask attribute)": [[0, "flask.Flask.json"]], "json (flask.request property)": [[0, "flask.Request.json"]], "json (flask.response property)": [[0, "flask.Response.json"]], "json_decoder (flask.blueprint property)": [[0, "flask.Blueprint.json_decoder"]], "json_decoder (flask.flask property)": [[0, "flask.Flask.json_decoder"]], "json_encoder (flask.blueprint property)": [[0, "flask.Blueprint.json_encoder"]], "json_encoder (flask.flask property)": [[0, "flask.Flask.json_encoder"]], "json_provider_class (flask.flask attribute)": [[0, "flask.Flask.json_provider_class"]], "jsonify() (in module flask.json)": [[0, "flask.json.jsonify"]], "key (flask.json.tag.jsontag attribute)": [[0, "flask.json.tag.JSONTag.key"]], "key_derivation (flask.sessions.securecookiesessioninterface attribute)": [[0, "flask.sessions.SecureCookieSessionInterface.key_derivation"]], "last_modified (flask.response attribute)": [[0, "flask.Response.last_modified"]], "list_commands() (flask.cli.flaskgroup method)": [[0, "flask.cli.FlaskGroup.list_commands"]], "list_storage_class (flask.request attribute)": [[0, "flask.Request.list_storage_class"]], "load() (flask.json.provider.jsonprovider method)": [[0, "flask.json.provider.JSONProvider.load"]], "load() (in module flask.json)": [[0, "flask.json.load"]], "load_app() (flask.cli.scriptinfo method)": [[0, "flask.cli.ScriptInfo.load_app"]], "load_dotenv() (in module flask.cli)": [[0, "flask.cli.load_dotenv"]], "loads() (flask.json.provider.defaultjsonprovider method)": [[0, "flask.json.provider.DefaultJSONProvider.loads"]], "loads() (flask.json.provider.jsonprovider method)": [[0, "flask.json.provider.JSONProvider.loads"]], "loads() (flask.json.tag.taggedjsonserializer method)": [[0, "flask.json.tag.TaggedJSONSerializer.loads"]], "loads() (in module flask.json)": [[0, "flask.json.loads"]], "location (flask.response attribute)": [[0, "flask.Response.location"]], "log_exception() (flask.flask method)": [[0, "flask.Flask.log_exception"]], "logger (flask.flask property)": [[0, "flask.Flask.logger"]], "make_aborter() (flask.flask method)": [[0, "flask.Flask.make_aborter"]], "make_conditional() (flask.response method)": [[0, "flask.Response.make_conditional"]], "make_config() (flask.flask method)": [[0, "flask.Flask.make_config"]], "make_context() (flask.cli.flaskgroup method)": [[0, "flask.cli.FlaskGroup.make_context"]], "make_default_options_response() (flask.flask method)": [[0, "flask.Flask.make_default_options_response"]], "make_form_data_parser() (flask.request method)": [[0, "flask.Request.make_form_data_parser"]], "make_null_session() (flask.sessions.sessioninterface method)": [[0, "flask.sessions.SessionInterface.make_null_session"]], "make_response() (flask.flask method)": [[0, "flask.Flask.make_response"]], "make_response() (in module flask)": [[0, "flask.make_response"]], "make_sequence() (flask.response method)": [[0, "flask.Response.make_sequence"]], "make_setup_state() (flask.blueprint method)": [[0, "flask.Blueprint.make_setup_state"]], "make_shell_context() (flask.flask method)": [[0, "flask.Flask.make_shell_context"]], "match_request() (flask.ctx.requestcontext method)": [[0, "flask.ctx.RequestContext.match_request"]], "max_content_length (flask.request property)": [[0, "flask.Request.max_content_length"]], "max_cookie_size (flask.response property)": [[0, "flask.Response.max_cookie_size"]], "max_form_memory_size (flask.request attribute)": [[0, "flask.Request.max_form_memory_size"]], "max_form_parts (flask.request attribute)": [[0, "flask.Request.max_form_parts"]], "max_forwards (flask.request attribute)": [[0, "flask.Request.max_forwards"]], "message_flashed (in module flask)": [[0, "flask.message_flashed"]], "method (flask.request attribute)": [[0, "flask.Request.method"]], "methods (flask.views.view attribute)": [[0, "flask.views.View.methods"]], "mimetype (flask.request property)": [[0, "flask.Request.mimetype"]], "mimetype (flask.response property)": [[0, "flask.Response.mimetype"]], "mimetype (flask.json.provider.defaultjsonprovider attribute)": [[0, "flask.json.provider.DefaultJSONProvider.mimetype"]], "mimetype_params (flask.request property)": [[0, "flask.Request.mimetype_params"]], "mimetype_params (flask.response property)": [[0, "flask.Response.mimetype_params"]], "modified (flask.session attribute)": [[0, "flask.session.modified"]], "modified (flask.sessions.securecookiesession attribute)": [[0, "flask.sessions.SecureCookieSession.modified"]], "modified (flask.sessions.sessionmixin attribute)": [[0, "flask.sessions.SessionMixin.modified"]], "module": [[0, "module-flask"], [0, "module-flask.json"], [0, "module-flask.json.tag"]], "name (flask.flask property)": [[0, "flask.Flask.name"]], "new (flask.session attribute)": [[0, "flask.session.new"]], "null_session_class (flask.sessions.sessioninterface attribute)": [[0, "flask.sessions.SessionInterface.null_session_class"]], "on_json_loading_failed() (flask.request method)": [[0, "flask.Request.on_json_loading_failed"]], "open() (flask.testing.flaskclient method)": [[0, "flask.testing.FlaskClient.open"]], "open_instance_resource() (flask.flask method)": [[0, "flask.Flask.open_instance_resource"]], "open_resource() (flask.blueprint method)": [[0, "flask.Blueprint.open_resource"]], "open_resource() (flask.flask method)": [[0, "flask.Flask.open_resource"]], "open_session() (flask.sessions.securecookiesessioninterface method)": [[0, "flask.sessions.SecureCookieSessionInterface.open_session"]], "open_session() (flask.sessions.sessioninterface method)": [[0, "flask.sessions.SessionInterface.open_session"]], "options (flask.blueprints.blueprintsetupstate attribute)": [[0, "flask.blueprints.BlueprintSetupState.options"]], "origin (flask.request attribute)": [[0, "flask.Request.origin"]], "parameter_storage_class (flask.request attribute)": [[0, "flask.Request.parameter_storage_class"]], "parse_args() (flask.cli.flaskgroup method)": [[0, "flask.cli.FlaskGroup.parse_args"]], "pass_script_info() (in module flask.cli)": [[0, "flask.cli.pass_script_info"]], "patch() (flask.blueprint method)": [[0, "flask.Blueprint.patch"]], "patch() (flask.flask method)": [[0, "flask.Flask.patch"]], "path (flask.request attribute)": [[0, "flask.Request.path"]], "permanent (flask.session attribute)": [[0, "flask.session.permanent"]], "permanent (flask.sessions.sessionmixin property)": [[0, "flask.sessions.SessionMixin.permanent"]], "permanent_session_lifetime (flask.flask attribute)": [[0, "flask.Flask.permanent_session_lifetime"]], "pickle_based (flask.sessions.sessioninterface attribute)": [[0, "flask.sessions.SessionInterface.pickle_based"]], "pop() (flask.ctx.appcontext method)": [[0, "flask.ctx.AppContext.pop"]], "pop() (flask.ctx.requestcontext method)": [[0, "flask.ctx.RequestContext.pop"]], "pop() (flask.ctx._appctxglobals method)": [[0, "flask.ctx._AppCtxGlobals.pop"]], "pop() (flask.sessions.nullsession method)": [[0, "flask.sessions.NullSession.pop"]], "popitem() (flask.sessions.nullsession method)": [[0, "flask.sessions.NullSession.popitem"]], "post() (flask.blueprint method)": [[0, "flask.Blueprint.post"]], "post() (flask.flask method)": [[0, "flask.Flask.post"]], "pragma (flask.request property)": [[0, "flask.Request.pragma"]], "preprocess_request() (flask.flask method)": [[0, "flask.Flask.preprocess_request"]], "process_response() (flask.flask method)": [[0, "flask.Flask.process_response"]], "propagate_exceptions (flask.flask property)": [[0, "flask.Flask.propagate_exceptions"]], "provide_automatic_options (flask.views.view attribute)": [[0, "flask.views.View.provide_automatic_options"]], "push() (flask.ctx.appcontext method)": [[0, "flask.ctx.AppContext.push"]], "put() (flask.blueprint method)": [[0, "flask.Blueprint.put"]], "put() (flask.flask method)": [[0, "flask.Flask.put"]], "query_string (flask.request attribute)": [[0, "flask.Request.query_string"]], "range (flask.request property)": [[0, "flask.Request.range"]], "record() (flask.blueprint method)": [[0, "flask.Blueprint.record"]], "record_once() (flask.blueprint method)": [[0, "flask.Blueprint.record_once"]], "redirect() (flask.flask method)": [[0, "flask.Flask.redirect"]], "redirect() (in module flask)": [[0, "flask.redirect"]], "referrer (flask.request attribute)": [[0, "flask.Request.referrer"]], "register() (flask.blueprint method)": [[0, "flask.Blueprint.register"]], "register() (flask.json.tag.taggedjsonserializer method)": [[0, "flask.json.tag.TaggedJSONSerializer.register"]], "register_blueprint() (flask.blueprint method)": [[0, "flask.Blueprint.register_blueprint"]], "register_blueprint() (flask.flask method)": [[0, "flask.Flask.register_blueprint"]], "register_error_handler() (flask.blueprint method)": [[0, "flask.Blueprint.register_error_handler"]], "register_error_handler() (flask.flask method)": [[0, "flask.Flask.register_error_handler"]], "remote_addr (flask.request attribute)": [[0, "flask.Request.remote_addr"]], "remote_user (flask.request attribute)": [[0, "flask.Request.remote_user"]], "render_template() (in module flask)": [[0, "flask.render_template"]], "render_template_string() (in module flask)": [[0, "flask.render_template_string"]], "request (in module flask)": [[0, "flask.request"]], "request_class (flask.flask attribute)": [[0, "flask.Flask.request_class"]], "request_context() (flask.flask method)": [[0, "flask.Flask.request_context"]], "request_finished (in module flask)": [[0, "flask.request_finished"]], "request_started (in module flask)": [[0, "flask.request_started"]], "request_tearing_down (in module flask)": [[0, "flask.request_tearing_down"]], "response (flask.response attribute)": [[0, "flask.Response.response"]], "response() (flask.json.provider.defaultjsonprovider method)": [[0, "flask.json.provider.DefaultJSONProvider.response"]], "response() (flask.json.provider.jsonprovider method)": [[0, "flask.json.provider.JSONProvider.response"]], "response_class (flask.flask attribute)": [[0, "flask.Flask.response_class"]], "retry_after (flask.response property)": [[0, "flask.Response.retry_after"]], "root_path (flask.blueprint attribute)": [[0, "flask.Blueprint.root_path"]], "root_path (flask.flask attribute)": [[0, "flask.Flask.root_path"]], "root_path (flask.request attribute)": [[0, "flask.Request.root_path"]], "root_url (flask.request property)": [[0, "flask.Request.root_url"]], "route() (flask.blueprint method)": [[0, "flask.Blueprint.route"]], "route() (flask.flask method)": [[0, "flask.Flask.route"]], "routing_exception (flask.request attribute)": [[0, "flask.Request.routing_exception"]], "run() (flask.flask method)": [[0, "flask.Flask.run"]], "run_command (in module flask.cli)": [[0, "flask.cli.run_command"]], "salt (flask.sessions.securecookiesessioninterface attribute)": [[0, "flask.sessions.SecureCookieSessionInterface.salt"]], "save_session() (flask.sessions.securecookiesessioninterface method)": [[0, "flask.sessions.SecureCookieSessionInterface.save_session"]], "save_session() (flask.sessions.sessioninterface method)": [[0, "flask.sessions.SessionInterface.save_session"]], "scheme (flask.request attribute)": [[0, "flask.Request.scheme"]], "script_root (flask.request property)": [[0, "flask.Request.script_root"]], "secret_key (flask.flask attribute)": [[0, "flask.Flask.secret_key"]], "select_jinja_autoescape() (flask.flask method)": [[0, "flask.Flask.select_jinja_autoescape"]], "send_file() (in module flask)": [[0, "flask.send_file"]], "send_file_max_age_default (flask.flask property)": [[0, "flask.Flask.send_file_max_age_default"]], "send_from_directory() (in module flask)": [[0, "flask.send_from_directory"]], "send_static_file() (flask.blueprint method)": [[0, "flask.Blueprint.send_static_file"]], "send_static_file() (flask.flask method)": [[0, "flask.Flask.send_static_file"]], "serializer (flask.sessions.securecookiesessioninterface attribute)": [[0, "flask.sessions.SecureCookieSessionInterface.serializer"]], "server (flask.request attribute)": [[0, "flask.Request.server"]], "session (class in flask)": [[0, "flask.session"]], "session_class (flask.sessions.securecookiesessioninterface attribute)": [[0, "flask.sessions.SecureCookieSessionInterface.session_class"]], "session_cookie_name (flask.flask property)": [[0, "flask.Flask.session_cookie_name"]], "session_interface (flask.flask attribute)": [[0, "flask.Flask.session_interface"]], "session_transaction() (flask.testing.flaskclient method)": [[0, "flask.testing.FlaskClient.session_transaction"]], "set_cookie() (flask.response method)": [[0, "flask.Response.set_cookie"]], "set_data() (flask.response method)": [[0, "flask.Response.set_data"]], "set_etag() (flask.response method)": [[0, "flask.Response.set_etag"]], "setdefault() (flask.ctx._appctxglobals method)": [[0, "flask.ctx._AppCtxGlobals.setdefault"]], "setdefault() (flask.sessions.nullsession method)": [[0, "flask.sessions.NullSession.setdefault"]], "setdefault() (flask.sessions.securecookiesession method)": [[0, "flask.sessions.SecureCookieSession.setdefault"]], "shallow (flask.request attribute)": [[0, "flask.Request.shallow"]], "shell_command (in module flask.cli)": [[0, "flask.cli.shell_command"]], "shell_context_processor() (flask.flask method)": [[0, "flask.Flask.shell_context_processor"]], "shell_context_processors (flask.flask attribute)": [[0, "flask.Flask.shell_context_processors"]], "should_ignore_error() (flask.flask method)": [[0, "flask.Flask.should_ignore_error"]], "should_set_cookie() (flask.sessions.sessioninterface method)": [[0, "flask.sessions.SessionInterface.should_set_cookie"]], "signal() (flask.signals.namespace method)": [[0, "flask.signals.Namespace.signal"]], "signals.namespace (class in flask)": [[0, "flask.signals.Namespace"]], "signals.signals_available (in module flask)": [[0, "flask.signals.signals_available"]], "sort_keys (flask.json.provider.defaultjsonprovider attribute)": [[0, "flask.json.provider.DefaultJSONProvider.sort_keys"]], "static_folder (flask.blueprint property)": [[0, "flask.Blueprint.static_folder"]], "static_folder (flask.flask property)": [[0, "flask.Flask.static_folder"]], "static_url_path (flask.blueprint property)": [[0, "flask.Blueprint.static_url_path"]], "static_url_path (flask.flask property)": [[0, "flask.Flask.static_url_path"]], "status (flask.response property)": [[0, "flask.Response.status"]], "status_code (flask.response property)": [[0, "flask.Response.status_code"]], "stream (flask.request property)": [[0, "flask.Request.stream"]], "stream (flask.response property)": [[0, "flask.Response.stream"]], "stream_template() (in module flask)": [[0, "flask.stream_template"]], "stream_template_string() (in module flask)": [[0, "flask.stream_template_string"]], "stream_with_context() (in module flask)": [[0, "flask.stream_with_context"]], "striptags() (flask.markup method)": [[0, "flask.Markup.striptags"]], "subdomain (flask.blueprints.blueprintsetupstate attribute)": [[0, "flask.blueprints.BlueprintSetupState.subdomain"]], "tag() (flask.json.tag.jsontag method)": [[0, "flask.json.tag.JSONTag.tag"]], "tag() (flask.json.tag.taggedjsonserializer method)": [[0, "flask.json.tag.TaggedJSONSerializer.tag"]], "teardown_app_request() (flask.blueprint method)": [[0, "flask.Blueprint.teardown_app_request"]], "teardown_appcontext() (flask.flask method)": [[0, "flask.Flask.teardown_appcontext"]], "teardown_appcontext_funcs (flask.flask attribute)": [[0, "flask.Flask.teardown_appcontext_funcs"]], "teardown_request() (flask.blueprint method)": [[0, "flask.Blueprint.teardown_request"]], "teardown_request() (flask.flask method)": [[0, "flask.Flask.teardown_request"]], "teardown_request_funcs (flask.blueprint attribute)": [[0, "flask.Blueprint.teardown_request_funcs"]], "teardown_request_funcs (flask.flask attribute)": [[0, "flask.Flask.teardown_request_funcs"]], "template_context_processors (flask.blueprint attribute)": [[0, "flask.Blueprint.template_context_processors"]], "template_context_processors (flask.flask attribute)": [[0, "flask.Flask.template_context_processors"]], "template_filter() (flask.flask method)": [[0, "flask.Flask.template_filter"]], "template_folder (flask.blueprint attribute)": [[0, "flask.Blueprint.template_folder"]], "template_folder (flask.flask attribute)": [[0, "flask.Flask.template_folder"]], "template_global() (flask.flask method)": [[0, "flask.Flask.template_global"]], "template_rendered (in module flask)": [[0, "flask.template_rendered"]], "template_test() (flask.flask method)": [[0, "flask.Flask.template_test"]], "templates_auto_reload (flask.flask property)": [[0, "flask.Flask.templates_auto_reload"]], "test_cli_runner() (flask.flask method)": [[0, "flask.Flask.test_cli_runner"]], "test_cli_runner_class (flask.flask attribute)": [[0, "flask.Flask.test_cli_runner_class"]], "test_client() (flask.flask method)": [[0, "flask.Flask.test_client"]], "test_client_class (flask.flask attribute)": [[0, "flask.Flask.test_client_class"]], "test_request_context() (flask.flask method)": [[0, "flask.Flask.test_request_context"]], "testing (flask.flask attribute)": [[0, "flask.Flask.testing"]], "to_json() (flask.json.tag.jsontag method)": [[0, "flask.json.tag.JSONTag.to_json"]], "to_python() (flask.json.tag.jsontag method)": [[0, "flask.json.tag.JSONTag.to_python"]], "trap_http_exception() (flask.flask method)": [[0, "flask.Flask.trap_http_exception"]], "trusted_hosts (flask.request attribute)": [[0, "flask.Request.trusted_hosts"]], "unescape() (flask.markup method)": [[0, "flask.Markup.unescape"]], "untag() (flask.json.tag.taggedjsonserializer method)": [[0, "flask.json.tag.TaggedJSONSerializer.untag"]], "update() (flask.sessions.nullsession method)": [[0, "flask.sessions.NullSession.update"]], "update_template_context() (flask.flask method)": [[0, "flask.Flask.update_template_context"]], "url (flask.request property)": [[0, "flask.Request.url"]], "url_build_error_handlers (flask.flask attribute)": [[0, "flask.Flask.url_build_error_handlers"]], "url_charset (flask.request property)": [[0, "flask.Request.url_charset"]], "url_default_functions (flask.blueprint attribute)": [[0, "flask.Blueprint.url_default_functions"]], "url_default_functions (flask.flask attribute)": [[0, "flask.Flask.url_default_functions"]], "url_defaults (flask.blueprints.blueprintsetupstate attribute)": [[0, "flask.blueprints.BlueprintSetupState.url_defaults"]], "url_defaults() (flask.blueprint method)": [[0, "flask.Blueprint.url_defaults"]], "url_defaults() (flask.flask method)": [[0, "flask.Flask.url_defaults"]], "url_for() (flask.flask method)": [[0, "flask.Flask.url_for"]], "url_for() (in module flask)": [[0, "flask.url_for"]], "url_map (flask.flask attribute)": [[0, "flask.Flask.url_map"]], "url_map_class (flask.flask attribute)": [[0, "flask.Flask.url_map_class"]], "url_prefix (flask.blueprints.blueprintsetupstate attribute)": [[0, "flask.blueprints.BlueprintSetupState.url_prefix"]], "url_root (flask.request property)": [[0, "flask.Request.url_root"]], "url_rule (flask.request attribute)": [[0, "flask.Request.url_rule"]], "url_rule_class (flask.flask attribute)": [[0, "flask.Flask.url_rule_class"]], "url_value_preprocessor() (flask.blueprint method)": [[0, "flask.Blueprint.url_value_preprocessor"]], "url_value_preprocessor() (flask.flask method)": [[0, "flask.Flask.url_value_preprocessor"]], "url_value_preprocessors (flask.blueprint attribute)": [[0, "flask.Blueprint.url_value_preprocessors"]], "url_value_preprocessors (flask.flask attribute)": [[0, "flask.Flask.url_value_preprocessors"]], "use_x_sendfile (flask.flask property)": [[0, "flask.Flask.use_x_sendfile"]], "user_agent (flask.request property)": [[0, "flask.Request.user_agent"]], "user_agent_class (flask.request attribute)": [[0, "flask.Request.user_agent_class"]], "values (flask.request property)": [[0, "flask.Request.values"]], "vary (flask.response property)": [[0, "flask.Response.vary"]], "view_args (flask.request attribute)": [[0, "flask.Request.view_args"]], "view_functions (flask.blueprint attribute)": [[0, "flask.Blueprint.view_functions"]], "view_functions (flask.flask attribute)": [[0, "flask.Flask.view_functions"]], "want_form_data_parsed (flask.request property)": [[0, "flask.Request.want_form_data_parsed"]], "with_appcontext() (in module flask.cli)": [[0, "flask.cli.with_appcontext"]], "wsgi_app() (flask.flask method)": [[0, "flask.Flask.wsgi_app"]], "www_authenticate (flask.response property)": [[0, "flask.Response.www_authenticate"]], "pep 302": [[4, "index-5"]], "pep 3333": [[4, "index-2"]], "pep 451": [[4, "index-1"]], "pep 519": [[4, "index-0"]], "python enhancement proposals": [[4, "index-0"], [4, "index-1"], [4, "index-2"], [4, "index-5"]], "rfc 8259": [[4, "index-3"], [4, "index-4"]], "application_root (built-in variable)": [[6, "APPLICATION_ROOT"]], "debug (built-in variable)": [[6, "DEBUG"]], "env (built-in variable)": [[6, "ENV"]], "explain_template_loading (built-in variable)": [[6, "EXPLAIN_TEMPLATE_LOADING"]], "flask_env": [[6, "index-0"]], "jsonify_mimetype (built-in variable)": [[6, "JSONIFY_MIMETYPE"]], "jsonify_prettyprint_regular (built-in variable)": [[6, "JSONIFY_PRETTYPRINT_REGULAR"]], "json_as_ascii (built-in variable)": [[6, "JSON_AS_ASCII"]], "json_sort_keys (built-in variable)": [[6, "JSON_SORT_KEYS"]], "max_content_length (built-in variable)": [[6, "MAX_CONTENT_LENGTH"]], "max_cookie_size (built-in variable)": [[6, "MAX_COOKIE_SIZE"]], "permanent_session_lifetime (built-in variable)": [[6, "PERMANENT_SESSION_LIFETIME"]], "preferred_url_scheme (built-in variable)": [[6, "PREFERRED_URL_SCHEME"]], "propagate_exceptions (built-in variable)": [[6, "PROPAGATE_EXCEPTIONS"]], "secret_key (built-in variable)": [[6, "SECRET_KEY"]], "send_file_max_age_default (built-in variable)": [[6, "SEND_FILE_MAX_AGE_DEFAULT"]], "server_name (built-in variable)": [[6, "SERVER_NAME"]], "session_cookie_domain (built-in variable)": [[6, "SESSION_COOKIE_DOMAIN"]], "session_cookie_httponly (built-in variable)": [[6, "SESSION_COOKIE_HTTPONLY"]], "session_cookie_name (built-in variable)": [[6, "SESSION_COOKIE_NAME"]], "session_cookie_path (built-in variable)": [[6, "SESSION_COOKIE_PATH"]], "session_cookie_samesite (built-in variable)": [[6, "SESSION_COOKIE_SAMESITE"]], "session_cookie_secure (built-in variable)": [[6, "SESSION_COOKIE_SECURE"]], "session_refresh_each_request (built-in variable)": [[6, "SESSION_REFRESH_EACH_REQUEST"]], "templates_auto_reload (built-in variable)": [[6, "TEMPLATES_AUTO_RELOAD"]], "testing (built-in variable)": [[6, "TESTING"]], "trap_bad_request_errors (built-in variable)": [[6, "TRAP_BAD_REQUEST_ERRORS"]], "trap_http_exceptions (built-in variable)": [[6, "TRAP_HTTP_EXCEPTIONS"]], "use_x_sendfile (built-in variable)": [[6, "USE_X_SENDFILE"]], "yourapplication_settings": [[6, "index-1"]]}})