3605 lines
444 KiB
HTML
3605 lines
444 KiB
HTML
|
||
|
||
<!DOCTYPE html>
|
||
<html class="writer-html5" lang="en" data-content_root="./">
|
||
<head>
|
||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<title>flask package — Flask documentation</title>
|
||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
||
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
|
||
|
||
|
||
<script src="_static/jquery.js?v=5d32c60e"></script>
|
||
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||
<script src="_static/documentation_options.js?v=5929fcd5"></script>
|
||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||
<script src="_static/js/theme.js"></script>
|
||
<link rel="index" title="Index" href="genindex.html" />
|
||
<link rel="search" title="Search" href="search.html" />
|
||
<link rel="next" title="flask.json package" href="flask.json.html" />
|
||
<link rel="prev" title="flask" href="modules.html" />
|
||
</head>
|
||
|
||
<body class="wy-body-for-nav">
|
||
<div class="wy-grid-for-nav">
|
||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||
<div class="wy-side-scroll">
|
||
<div class="wy-side-nav-search" >
|
||
|
||
|
||
|
||
<a href="index.html" class="icon icon-home">
|
||
Flask
|
||
</a>
|
||
<div role="search">
|
||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||
<p class="caption" role="heading"><span class="caption-text">Contenido:</span></p>
|
||
<ul class="current">
|
||
<li class="toctree-l1 current"><a class="reference internal" href="modules.html">flask</a><ul class="current">
|
||
<li class="toctree-l2 current"><a class="current reference internal" href="#">flask package</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#subpackages">Subpackages</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html">flask.json package</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#submodules">Submodules</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.app">flask.app module</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.app.Flask"><code class="docutils literal notranslate"><span class="pre">Flask</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.blueprints">flask.blueprints module</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.blueprints.Blueprint"><code class="docutils literal notranslate"><span class="pre">Blueprint</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.cli">flask.cli module</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.AppGroup"><code class="docutils literal notranslate"><span class="pre">AppGroup</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.CertParamType"><code class="docutils literal notranslate"><span class="pre">CertParamType</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.FlaskGroup"><code class="docutils literal notranslate"><span class="pre">FlaskGroup</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.NoAppException"><code class="docutils literal notranslate"><span class="pre">NoAppException</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.ScriptInfo"><code class="docutils literal notranslate"><span class="pre">ScriptInfo</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.SeparatedPathType"><code class="docutils literal notranslate"><span class="pre">SeparatedPathType</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.find_app_by_string"><code class="docutils literal notranslate"><span class="pre">find_app_by_string()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.find_best_app"><code class="docutils literal notranslate"><span class="pre">find_best_app()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.get_version"><code class="docutils literal notranslate"><span class="pre">get_version()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.load_dotenv"><code class="docutils literal notranslate"><span class="pre">load_dotenv()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.locate_app"><code class="docutils literal notranslate"><span class="pre">locate_app()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.main"><code class="docutils literal notranslate"><span class="pre">main()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.prepare_import"><code class="docutils literal notranslate"><span class="pre">prepare_import()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.show_server_banner"><code class="docutils literal notranslate"><span class="pre">show_server_banner()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.cli.with_appcontext"><code class="docutils literal notranslate"><span class="pre">with_appcontext()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.config">flask.config module</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.config.Config"><code class="docutils literal notranslate"><span class="pre">Config</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.config.ConfigAttribute"><code class="docutils literal notranslate"><span class="pre">ConfigAttribute</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.ctx">flask.ctx module</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.ctx.AppContext"><code class="docutils literal notranslate"><span class="pre">AppContext</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.ctx.RequestContext"><code class="docutils literal notranslate"><span class="pre">RequestContext</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.ctx.after_this_request"><code class="docutils literal notranslate"><span class="pre">after_this_request()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.ctx.copy_current_request_context"><code class="docutils literal notranslate"><span class="pre">copy_current_request_context()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.ctx.has_app_context"><code class="docutils literal notranslate"><span class="pre">has_app_context()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.ctx.has_request_context"><code class="docutils literal notranslate"><span class="pre">has_request_context()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.debughelpers">flask.debughelpers module</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.debughelpers.DebugFilesKeyError"><code class="docutils literal notranslate"><span class="pre">DebugFilesKeyError</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.debughelpers.FormDataRoutingRedirect"><code class="docutils literal notranslate"><span class="pre">FormDataRoutingRedirect</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.debughelpers.UnexpectedUnicodeError"><code class="docutils literal notranslate"><span class="pre">UnexpectedUnicodeError</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.debughelpers.explain_template_loading_attempts"><code class="docutils literal notranslate"><span class="pre">explain_template_loading_attempts()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.globals">flask.globals module</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.helpers">flask.helpers module</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.helpers.abort"><code class="docutils literal notranslate"><span class="pre">abort()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.helpers.flash"><code class="docutils literal notranslate"><span class="pre">flash()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.helpers.get_debug_flag"><code class="docutils literal notranslate"><span class="pre">get_debug_flag()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.helpers.get_flashed_messages"><code class="docutils literal notranslate"><span class="pre">get_flashed_messages()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.helpers.get_load_dotenv"><code class="docutils literal notranslate"><span class="pre">get_load_dotenv()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.helpers.get_template_attribute"><code class="docutils literal notranslate"><span class="pre">get_template_attribute()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.helpers.make_response"><code class="docutils literal notranslate"><span class="pre">make_response()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.helpers.redirect"><code class="docutils literal notranslate"><span class="pre">redirect()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.helpers.send_file"><code class="docutils literal notranslate"><span class="pre">send_file()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.helpers.send_from_directory"><code class="docutils literal notranslate"><span class="pre">send_from_directory()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.helpers.stream_with_context"><code class="docutils literal notranslate"><span class="pre">stream_with_context()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.helpers.url_for"><code class="docutils literal notranslate"><span class="pre">url_for()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.logging">flask.logging module</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.logging.create_logger"><code class="docutils literal notranslate"><span class="pre">create_logger()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.logging.default_handler"><code class="docutils literal notranslate"><span class="pre">default_handler</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.logging.has_level_handler"><code class="docutils literal notranslate"><span class="pre">has_level_handler()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.sessions">flask.sessions module</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.sessions.NullSession"><code class="docutils literal notranslate"><span class="pre">NullSession</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.sessions.SecureCookieSession"><code class="docutils literal notranslate"><span class="pre">SecureCookieSession</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.sessions.SecureCookieSessionInterface"><code class="docutils literal notranslate"><span class="pre">SecureCookieSessionInterface</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.sessions.SessionInterface"><code class="docutils literal notranslate"><span class="pre">SessionInterface</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.sessions.SessionMixin"><code class="docutils literal notranslate"><span class="pre">SessionMixin</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.signals">flask.signals module</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.templating">flask.templating module</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.templating.DispatchingJinjaLoader"><code class="docutils literal notranslate"><span class="pre">DispatchingJinjaLoader</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.templating.Environment"><code class="docutils literal notranslate"><span class="pre">Environment</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.templating.render_template"><code class="docutils literal notranslate"><span class="pre">render_template()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.templating.render_template_string"><code class="docutils literal notranslate"><span class="pre">render_template_string()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.templating.stream_template"><code class="docutils literal notranslate"><span class="pre">stream_template()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.templating.stream_template_string"><code class="docutils literal notranslate"><span class="pre">stream_template_string()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.testing">flask.testing module</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.testing.EnvironBuilder"><code class="docutils literal notranslate"><span class="pre">EnvironBuilder</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.testing.FlaskCliRunner"><code class="docutils literal notranslate"><span class="pre">FlaskCliRunner</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.testing.FlaskClient"><code class="docutils literal notranslate"><span class="pre">FlaskClient</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.typing">flask.typing module</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.views">flask.views module</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.views.MethodView"><code class="docutils literal notranslate"><span class="pre">MethodView</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.views.View"><code class="docutils literal notranslate"><span class="pre">View</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask.wrappers">flask.wrappers module</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.wrappers.Request"><code class="docutils literal notranslate"><span class="pre">Request</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#flask.wrappers.Response"><code class="docutils literal notranslate"><span class="pre">Response</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#module-flask">Module contents</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||
<a href="index.html">Flask</a>
|
||
</nav>
|
||
|
||
<div class="wy-nav-content">
|
||
<div class="rst-content">
|
||
<div role="navigation" aria-label="Page navigation">
|
||
<ul class="wy-breadcrumbs">
|
||
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||
<li class="breadcrumb-item"><a href="modules.html">flask</a></li>
|
||
<li class="breadcrumb-item active">flask package</li>
|
||
<li class="wy-breadcrumbs-aside">
|
||
<a href="_sources/flask.rst.txt" rel="nofollow"> View page source</a>
|
||
</li>
|
||
</ul>
|
||
<hr/>
|
||
</div>
|
||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||
<div itemprop="articleBody">
|
||
|
||
<section id="flask-package">
|
||
<h1>flask package<a class="headerlink" href="#flask-package" title="Link to this heading"></a></h1>
|
||
<section id="subpackages">
|
||
<h2>Subpackages<a class="headerlink" href="#subpackages" title="Link to this heading"></a></h2>
|
||
<div class="toctree-wrapper compound">
|
||
<ul>
|
||
<li class="toctree-l1"><a class="reference internal" href="flask.json.html">flask.json package</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="flask.json.html#submodules">Submodules</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="flask.json.html#module-flask.json.provider">flask.json.provider module</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.provider.DefaultJSONProvider"><code class="docutils literal notranslate"><span class="pre">DefaultJSONProvider</span></code></a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.provider.DefaultJSONProvider.compact"><code class="docutils literal notranslate"><span class="pre">DefaultJSONProvider.compact</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.provider.DefaultJSONProvider.default"><code class="docutils literal notranslate"><span class="pre">DefaultJSONProvider.default()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.provider.DefaultJSONProvider.dumps"><code class="docutils literal notranslate"><span class="pre">DefaultJSONProvider.dumps()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.provider.DefaultJSONProvider.ensure_ascii"><code class="docutils literal notranslate"><span class="pre">DefaultJSONProvider.ensure_ascii</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.provider.DefaultJSONProvider.loads"><code class="docutils literal notranslate"><span class="pre">DefaultJSONProvider.loads()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.provider.DefaultJSONProvider.mimetype"><code class="docutils literal notranslate"><span class="pre">DefaultJSONProvider.mimetype</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.provider.DefaultJSONProvider.response"><code class="docutils literal notranslate"><span class="pre">DefaultJSONProvider.response()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.provider.DefaultJSONProvider.sort_keys"><code class="docutils literal notranslate"><span class="pre">DefaultJSONProvider.sort_keys</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.provider.JSONProvider"><code class="docutils literal notranslate"><span class="pre">JSONProvider</span></code></a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.provider.JSONProvider.dump"><code class="docutils literal notranslate"><span class="pre">JSONProvider.dump()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.provider.JSONProvider.dumps"><code class="docutils literal notranslate"><span class="pre">JSONProvider.dumps()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.provider.JSONProvider.load"><code class="docutils literal notranslate"><span class="pre">JSONProvider.load()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.provider.JSONProvider.loads"><code class="docutils literal notranslate"><span class="pre">JSONProvider.loads()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.provider.JSONProvider.response"><code class="docutils literal notranslate"><span class="pre">JSONProvider.response()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="flask.json.html#module-flask.json.tag">flask.json.tag module</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#tagged-json">Tagged JSON</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TaggedJSONSerializer"><code class="docutils literal notranslate"><span class="pre">TaggedJSONSerializer</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.JSONTag"><code class="docutils literal notranslate"><span class="pre">JSONTag</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#id0"><code class="docutils literal notranslate"><span class="pre">JSONTag</span></code></a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#id1"><code class="docutils literal notranslate"><span class="pre">JSONTag.check()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#id2"><code class="docutils literal notranslate"><span class="pre">JSONTag.key</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.JSONTag.serializer"><code class="docutils literal notranslate"><span class="pre">JSONTag.serializer</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#id3"><code class="docutils literal notranslate"><span class="pre">JSONTag.tag()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#id4"><code class="docutils literal notranslate"><span class="pre">JSONTag.to_json()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#id5"><code class="docutils literal notranslate"><span class="pre">JSONTag.to_python()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.tag.PassDict"><code class="docutils literal notranslate"><span class="pre">PassDict</span></code></a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.PassDict.check"><code class="docutils literal notranslate"><span class="pre">PassDict.check()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.PassDict.tag"><code class="docutils literal notranslate"><span class="pre">PassDict.tag()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.PassDict.to_json"><code class="docutils literal notranslate"><span class="pre">PassDict.to_json()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.tag.PassList"><code class="docutils literal notranslate"><span class="pre">PassList</span></code></a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.PassList.check"><code class="docutils literal notranslate"><span class="pre">PassList.check()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.PassList.tag"><code class="docutils literal notranslate"><span class="pre">PassList.tag()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.PassList.to_json"><code class="docutils literal notranslate"><span class="pre">PassList.to_json()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.tag.TagBytes"><code class="docutils literal notranslate"><span class="pre">TagBytes</span></code></a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagBytes.check"><code class="docutils literal notranslate"><span class="pre">TagBytes.check()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagBytes.key"><code class="docutils literal notranslate"><span class="pre">TagBytes.key</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagBytes.to_json"><code class="docutils literal notranslate"><span class="pre">TagBytes.to_json()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagBytes.to_python"><code class="docutils literal notranslate"><span class="pre">TagBytes.to_python()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.tag.TagDateTime"><code class="docutils literal notranslate"><span class="pre">TagDateTime</span></code></a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagDateTime.check"><code class="docutils literal notranslate"><span class="pre">TagDateTime.check()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagDateTime.key"><code class="docutils literal notranslate"><span class="pre">TagDateTime.key</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagDateTime.to_json"><code class="docutils literal notranslate"><span class="pre">TagDateTime.to_json()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagDateTime.to_python"><code class="docutils literal notranslate"><span class="pre">TagDateTime.to_python()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.tag.TagDict"><code class="docutils literal notranslate"><span class="pre">TagDict</span></code></a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagDict.check"><code class="docutils literal notranslate"><span class="pre">TagDict.check()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagDict.key"><code class="docutils literal notranslate"><span class="pre">TagDict.key</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagDict.to_json"><code class="docutils literal notranslate"><span class="pre">TagDict.to_json()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagDict.to_python"><code class="docutils literal notranslate"><span class="pre">TagDict.to_python()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.tag.TagMarkup"><code class="docutils literal notranslate"><span class="pre">TagMarkup</span></code></a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagMarkup.check"><code class="docutils literal notranslate"><span class="pre">TagMarkup.check()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagMarkup.key"><code class="docutils literal notranslate"><span class="pre">TagMarkup.key</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagMarkup.to_json"><code class="docutils literal notranslate"><span class="pre">TagMarkup.to_json()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagMarkup.to_python"><code class="docutils literal notranslate"><span class="pre">TagMarkup.to_python()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.tag.TagTuple"><code class="docutils literal notranslate"><span class="pre">TagTuple</span></code></a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagTuple.check"><code class="docutils literal notranslate"><span class="pre">TagTuple.check()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagTuple.key"><code class="docutils literal notranslate"><span class="pre">TagTuple.key</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagTuple.to_json"><code class="docutils literal notranslate"><span class="pre">TagTuple.to_json()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagTuple.to_python"><code class="docutils literal notranslate"><span class="pre">TagTuple.to_python()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.tag.TagUUID"><code class="docutils literal notranslate"><span class="pre">TagUUID</span></code></a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagUUID.check"><code class="docutils literal notranslate"><span class="pre">TagUUID.check()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagUUID.key"><code class="docutils literal notranslate"><span class="pre">TagUUID.key</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagUUID.to_json"><code class="docutils literal notranslate"><span class="pre">TagUUID.to_json()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TagUUID.to_python"><code class="docutils literal notranslate"><span class="pre">TagUUID.to_python()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#id6"><code class="docutils literal notranslate"><span class="pre">TaggedJSONSerializer</span></code></a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#id7"><code class="docutils literal notranslate"><span class="pre">TaggedJSONSerializer.default_tags</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#id8"><code class="docutils literal notranslate"><span class="pre">TaggedJSONSerializer.dumps()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#id9"><code class="docutils literal notranslate"><span class="pre">TaggedJSONSerializer.loads()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TaggedJSONSerializer.order"><code class="docutils literal notranslate"><span class="pre">TaggedJSONSerializer.order</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#id10"><code class="docutils literal notranslate"><span class="pre">TaggedJSONSerializer.register()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#id11"><code class="docutils literal notranslate"><span class="pre">TaggedJSONSerializer.tag()</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#flask.json.tag.TaggedJSONSerializer.tags"><code class="docutils literal notranslate"><span class="pre">TaggedJSONSerializer.tags</span></code></a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="flask.json.html#id12"><code class="docutils literal notranslate"><span class="pre">TaggedJSONSerializer.untag()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="flask.json.html#module-flask.json">Module contents</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.dump"><code class="docutils literal notranslate"><span class="pre">dump()</span></code></a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.dumps"><code class="docutils literal notranslate"><span class="pre">dumps()</span></code></a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.jsonify"><code class="docutils literal notranslate"><span class="pre">jsonify()</span></code></a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.load"><code class="docutils literal notranslate"><span class="pre">load()</span></code></a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="flask.json.html#flask.json.loads"><code class="docutils literal notranslate"><span class="pre">loads()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</section>
|
||
<section id="submodules">
|
||
<h2>Submodules<a class="headerlink" href="#submodules" title="Link to this heading"></a></h2>
|
||
</section>
|
||
<section id="module-flask.app">
|
||
<span id="flask-app-module"></span><h2>flask.app module<a class="headerlink" href="#module-flask.app" title="Link to this heading"></a></h2>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.app.Flask">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.app.</span></span><span class="sig-name descname"><span class="pre">Flask</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">import_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">static_url_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">static_folder</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">PathLike</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'static'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">static_host</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">host_matching</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">subdomain_matching</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">template_folder</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">PathLike</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'templates'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">instance_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">instance_relative_config</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">root_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.app.Flask" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">App</span></code></p>
|
||
<p>The flask object implements a WSGI application and acts as the central
|
||
object. It is passed the name of the module or package of the
|
||
application. Once it is created it will act as a central registry for
|
||
the view functions, the URL rules, template configuration and much more.</p>
|
||
<p>The name of the package is used to resolve resources from inside the
|
||
package or the folder the module is contained in depending on if the
|
||
package parameter resolves to an actual python package (a folder with
|
||
an <code class="file docutils literal notranslate"><span class="pre">__init__.py</span></code> file inside) or a standard module (just a <code class="docutils literal notranslate"><span class="pre">.py</span></code> file).</p>
|
||
<p>For more information about resource loading, see <a class="reference internal" href="#flask.app.Flask.open_resource" title="flask.app.Flask.open_resource"><code class="xref py py-func docutils literal notranslate"><span class="pre">open_resource()</span></code></a>.</p>
|
||
<p>Usually you create a <a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><code class="xref py py-class docutils literal notranslate"><span class="pre">Flask</span></code></a> instance in your main module or
|
||
in the <code class="file docutils literal notranslate"><span class="pre">__init__.py</span></code> file of your package like this:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">flask</span><span class="w"> </span><span class="kn">import</span> <span class="n">Flask</span>
|
||
<span class="n">app</span> <span class="o">=</span> <span class="n">Flask</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="admonition-about-the-first-parameter admonition">
|
||
<p class="admonition-title">About the First Parameter</p>
|
||
<p>The idea of the first parameter is to give Flask an idea of what
|
||
belongs to your application. This name is used to find resources
|
||
on the filesystem, can be used by extensions to improve debugging
|
||
information and a lot more.</p>
|
||
<p>So it’s important what you provide there. If you are using a single
|
||
module, <cite>__name__</cite> is always the correct value. If you however are
|
||
using a package, it’s usually recommended to hardcode the name of
|
||
your package there.</p>
|
||
<p>For example if your application is defined in <code class="file docutils literal notranslate"><span class="pre">yourapplication/app.py</span></code>
|
||
you should create it with one of the two versions below:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">app</span> <span class="o">=</span> <span class="n">Flask</span><span class="p">(</span><span class="s1">'yourapplication'</span><span class="p">)</span>
|
||
<span class="n">app</span> <span class="o">=</span> <span class="n">Flask</span><span class="p">(</span><span class="vm">__name__</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'.'</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Why is that? The application will work even with <cite>__name__</cite>, thanks
|
||
to how resources are looked up. However it will make debugging more
|
||
painful. Certain extensions can make assumptions based on the
|
||
import name of your application. For example the Flask-SQLAlchemy
|
||
extension will look for the code in your application that triggered
|
||
an SQL query in debug mode. If the import name is not properly set
|
||
up, that debugging information is lost. (For example it would only
|
||
pick up SQL queries in <cite>yourapplication.app</cite> and not
|
||
<cite>yourapplication.views.frontend</cite>)</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.7: </span>The <cite>static_url_path</cite>, <cite>static_folder</cite>, and <cite>template_folder</cite>
|
||
parameters were added.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.8: </span>The <cite>instance_path</cite> and <cite>instance_relative_config</cite> parameters were
|
||
added.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.11: </span>The <cite>root_path</cite> parameter was added.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 1.0: </span>The <code class="docutils literal notranslate"><span class="pre">host_matching</span></code> and <code class="docutils literal notranslate"><span class="pre">static_host</span></code> parameters were added.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 1.0: </span>The <code class="docutils literal notranslate"><span class="pre">subdomain_matching</span></code> parameter was added. Subdomain
|
||
matching needs to be enabled manually now. Setting
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">SERVER_NAME</span></code> does not implicitly enable it.</p>
|
||
</div>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>import_name</strong> – the name of the application package</p></li>
|
||
<li><p><strong>static_url_path</strong> – can be used to specify a different path for the
|
||
static files on the web. Defaults to the name
|
||
of the <cite>static_folder</cite> folder.</p></li>
|
||
<li><p><strong>static_folder</strong> – The folder with static files that is served at
|
||
<code class="docutils literal notranslate"><span class="pre">static_url_path</span></code>. Relative to the application <code class="docutils literal notranslate"><span class="pre">root_path</span></code>
|
||
or an absolute path. Defaults to <code class="docutils literal notranslate"><span class="pre">'static'</span></code>.</p></li>
|
||
<li><p><strong>static_host</strong> – the host to use when adding the static route.
|
||
Defaults to None. Required when using <code class="docutils literal notranslate"><span class="pre">host_matching=True</span></code>
|
||
with a <code class="docutils literal notranslate"><span class="pre">static_folder</span></code> configured.</p></li>
|
||
<li><p><strong>host_matching</strong> – set <code class="docutils literal notranslate"><span class="pre">url_map.host_matching</span></code> attribute.
|
||
Defaults to False.</p></li>
|
||
<li><p><strong>subdomain_matching</strong> – consider the subdomain relative to
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">SERVER_NAME</span></code> when matching routes. Defaults to False.</p></li>
|
||
<li><p><strong>template_folder</strong> – the folder that contains the templates that should
|
||
be used by the application. Defaults to
|
||
<code class="docutils literal notranslate"><span class="pre">'templates'</span></code> folder in the root path of the
|
||
application.</p></li>
|
||
<li><p><strong>instance_path</strong> – An alternative instance path for the application.
|
||
By default the folder <code class="docutils literal notranslate"><span class="pre">'instance'</span></code> next to the
|
||
package or module is assumed to be the instance
|
||
path.</p></li>
|
||
<li><p><strong>instance_relative_config</strong> – if set to <code class="docutils literal notranslate"><span class="pre">True</span></code> relative filenames
|
||
for loading the config are assumed to
|
||
be relative to the instance path instead
|
||
of the application root.</p></li>
|
||
<li><p><strong>root_path</strong> – The path to the root of the application files.
|
||
This should only be set manually when it can’t be detected
|
||
automatically, such as for namespace packages.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.app_context">
|
||
<span class="sig-name descname"><span class="pre">app_context</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.ctx.AppContext" title="flask.ctx.AppContext"><span class="pre">AppContext</span></a></span></span><a class="headerlink" href="#flask.app.Flask.app_context" title="Link to this definition"></a></dt>
|
||
<dd><p>Create an <a class="reference internal" href="#flask.ctx.AppContext" title="flask.ctx.AppContext"><code class="xref py py-class docutils literal notranslate"><span class="pre">AppContext</span></code></a>. Use as a <code class="docutils literal notranslate"><span class="pre">with</span></code>
|
||
block to push the context, which will make <code class="xref py py-data docutils literal notranslate"><span class="pre">current_app</span></code>
|
||
point at this application.</p>
|
||
<p>An application context is automatically pushed by
|
||
<a class="reference internal" href="#flask.ctx.RequestContext.push" title="flask.ctx.RequestContext.push"><code class="xref py py-meth docutils literal notranslate"><span class="pre">RequestContext.push()</span></code></a>
|
||
when handling a request, and when running a CLI command. Use
|
||
this to manually create a context outside of these situations.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">with</span> <span class="n">app</span><span class="o">.</span><span class="n">app_context</span><span class="p">():</span>
|
||
<span class="n">init_db</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>See <span class="xref std std-doc">/appcontext</span>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.9.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.async_to_sync">
|
||
<span class="sig-name descname"><span class="pre">async_to_sync</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Coroutine</span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.app.Flask.async_to_sync" title="Link to this definition"></a></dt>
|
||
<dd><p>Return a sync function that will run the coroutine function.</p>
|
||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">result</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">async_to_sync</span><span class="p">(</span><span class="n">func</span><span class="p">)(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Override this method to change how the app converts async code
|
||
to be synchronously callable.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 2.0.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.cli">
|
||
<span class="sig-name descname"><span class="pre">cli</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Group</span></em><a class="headerlink" href="#flask.app.Flask.cli" title="Link to this definition"></a></dt>
|
||
<dd><p>The Click command group for registering CLI commands for this
|
||
object. The commands are available from the <code class="docutils literal notranslate"><span class="pre">flask</span></code> command
|
||
once the application has been discovered and blueprints have
|
||
been registered.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.create_jinja_environment">
|
||
<span class="sig-name descname"><span class="pre">create_jinja_environment</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.templating.Environment" title="flask.templating.Environment"><span class="pre">Environment</span></a></span></span><a class="headerlink" href="#flask.app.Flask.create_jinja_environment" title="Link to this definition"></a></dt>
|
||
<dd><p>Create the Jinja environment based on <code class="xref py py-attr docutils literal notranslate"><span class="pre">jinja_options</span></code>
|
||
and the various Jinja-related methods of the app. Changing
|
||
<code class="xref py py-attr docutils literal notranslate"><span class="pre">jinja_options</span></code> after this will have no effect. Also adds
|
||
Flask-related globals and filters to the environment.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.11: </span><code class="docutils literal notranslate"><span class="pre">Environment.auto_reload</span></code> set in accordance with
|
||
<code class="docutils literal notranslate"><span class="pre">TEMPLATES_AUTO_RELOAD</span></code> configuration option.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.5.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.create_url_adapter">
|
||
<span class="sig-name descname"><span class="pre">create_url_adapter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.wrappers.Request" title="flask.wrappers.Request"><span class="pre">Request</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">MapAdapter</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#flask.app.Flask.create_url_adapter" title="Link to this definition"></a></dt>
|
||
<dd><p>Creates a URL adapter for the given request. The URL adapter
|
||
is created at a point where the request context is not yet set
|
||
up so the request is passed explicitly.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.1: </span>If <code class="xref py py-data docutils literal notranslate"><span class="pre">SERVER_NAME</span></code> is set, it does not restrict requests to
|
||
only that domain, for both <code class="docutils literal notranslate"><span class="pre">subdomain_matching</span></code> and
|
||
<code class="docutils literal notranslate"><span class="pre">host_matching</span></code>.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.0: </span><code class="xref py py-data docutils literal notranslate"><span class="pre">SERVER_NAME</span></code> no longer implicitly enables subdomain
|
||
matching. Use <code class="xref py py-attr docutils literal notranslate"><span class="pre">subdomain_matching</span></code> instead.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.9: </span>This can be called outside a request when the URL adapter is created
|
||
for an application context.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.6.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.default_config">
|
||
<span class="sig-name descname"><span class="pre">default_config</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">t.Any</span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'APPLICATION_ROOT':</span> <span class="pre">'/',</span> <span class="pre">'DEBUG':</span> <span class="pre">None,</span> <span class="pre">'EXPLAIN_TEMPLATE_LOADING':</span> <span class="pre">False,</span> <span class="pre">'MAX_CONTENT_LENGTH':</span> <span class="pre">None,</span> <span class="pre">'MAX_COOKIE_SIZE':</span> <span class="pre">4093,</span> <span class="pre">'MAX_FORM_MEMORY_SIZE':</span> <span class="pre">500000,</span> <span class="pre">'MAX_FORM_PARTS':</span> <span class="pre">1000,</span> <span class="pre">'PERMANENT_SESSION_LIFETIME':</span> <span class="pre">datetime.timedelta(days=31),</span> <span class="pre">'PREFERRED_URL_SCHEME':</span> <span class="pre">'http',</span> <span class="pre">'PROPAGATE_EXCEPTIONS':</span> <span class="pre">None,</span> <span class="pre">'PROVIDE_AUTOMATIC_OPTIONS':</span> <span class="pre">True,</span> <span class="pre">'SECRET_KEY':</span> <span class="pre">None,</span> <span class="pre">'SECRET_KEY_FALLBACKS':</span> <span class="pre">None,</span> <span class="pre">'SEND_FILE_MAX_AGE_DEFAULT':</span> <span class="pre">None,</span> <span class="pre">'SERVER_NAME':</span> <span class="pre">None,</span> <span class="pre">'SESSION_COOKIE_DOMAIN':</span> <span class="pre">None,</span> <span class="pre">'SESSION_COOKIE_HTTPONLY':</span> <span class="pre">True,</span> <span class="pre">'SESSION_COOKIE_NAME':</span> <span class="pre">'session',</span> <span class="pre">'SESSION_COOKIE_PARTITIONED':</span> <span class="pre">False,</span> <span class="pre">'SESSION_COOKIE_PATH':</span> <span class="pre">None,</span> <span class="pre">'SESSION_COOKIE_SAMESITE':</span> <span class="pre">None,</span> <span class="pre">'SESSION_COOKIE_SECURE':</span> <span class="pre">False,</span> <span class="pre">'SESSION_REFRESH_EACH_REQUEST':</span> <span class="pre">True,</span> <span class="pre">'TEMPLATES_AUTO_RELOAD':</span> <span class="pre">None,</span> <span class="pre">'TESTING':</span> <span class="pre">False,</span> <span class="pre">'TRAP_BAD_REQUEST_ERRORS':</span> <span class="pre">None,</span> <span class="pre">'TRAP_HTTP_EXCEPTIONS':</span> <span class="pre">False,</span> <span class="pre">'TRUSTED_HOSTS':</span> <span class="pre">None,</span> <span class="pre">'USE_X_SENDFILE':</span> <span class="pre">False}</span></em><a class="headerlink" href="#flask.app.Flask.default_config" title="Link to this definition"></a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.dispatch_request">
|
||
<span class="sig-name descname"><span class="pre">dispatch_request</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">ft.ResponseReturnValue</span></span></span><a class="headerlink" href="#flask.app.Flask.dispatch_request" title="Link to this definition"></a></dt>
|
||
<dd><p>Does the request dispatching. Matches the URL and returns the
|
||
return value of the view or error handler. This does not have to
|
||
be a response object. In order to convert the return value to a
|
||
proper response object, call <a class="reference internal" href="#flask.app.Flask.make_response" title="flask.app.Flask.make_response"><code class="xref py py-func docutils literal notranslate"><span class="pre">make_response()</span></code></a>.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.7: </span>This no longer does the exception handling, this code was
|
||
moved to the new <a class="reference internal" href="#flask.app.Flask.full_dispatch_request" title="flask.app.Flask.full_dispatch_request"><code class="xref py py-meth docutils literal notranslate"><span class="pre">full_dispatch_request()</span></code></a>.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.do_teardown_appcontext">
|
||
<span class="sig-name descname"><span class="pre">do_teardown_appcontext</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">exc:</span> <span class="pre">BaseException</span> <span class="pre">|</span> <span class="pre">None</span> <span class="pre">=</span> <span class="pre"><object</span> <span class="pre">object></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.app.Flask.do_teardown_appcontext" title="Link to this definition"></a></dt>
|
||
<dd><p>Called right before the application context is popped.</p>
|
||
<p>When handling a request, the application context is popped
|
||
after the request context. See <a class="reference internal" href="#flask.app.Flask.do_teardown_request" title="flask.app.Flask.do_teardown_request"><code class="xref py py-meth docutils literal notranslate"><span class="pre">do_teardown_request()</span></code></a>.</p>
|
||
<p>This calls all functions decorated with
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">teardown_appcontext()</span></code>. Then the
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">appcontext_tearing_down</span></code> signal is sent.</p>
|
||
<p>This is called by
|
||
<a class="reference internal" href="#flask.ctx.AppContext.pop" title="flask.ctx.AppContext.pop"><code class="xref py py-meth docutils literal notranslate"><span class="pre">AppContext.pop()</span></code></a>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.9.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.do_teardown_request">
|
||
<span class="sig-name descname"><span class="pre">do_teardown_request</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">exc:</span> <span class="pre">BaseException</span> <span class="pre">|</span> <span class="pre">None</span> <span class="pre">=</span> <span class="pre"><object</span> <span class="pre">object></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.app.Flask.do_teardown_request" title="Link to this definition"></a></dt>
|
||
<dd><p>Called after the request is dispatched and the response is
|
||
returned, right before the request context is popped.</p>
|
||
<p>This calls all functions decorated with
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">teardown_request()</span></code>, and <code class="xref py py-meth docutils literal notranslate"><span class="pre">Blueprint.teardown_request()</span></code>
|
||
if a blueprint handled the request. Finally, the
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">request_tearing_down</span></code> signal is sent.</p>
|
||
<p>This is called by
|
||
<a class="reference internal" href="#flask.ctx.RequestContext.pop" title="flask.ctx.RequestContext.pop"><code class="xref py py-meth docutils literal notranslate"><span class="pre">RequestContext.pop()</span></code></a>,
|
||
which may be delayed during testing to maintain access to
|
||
resources.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>exc</strong> – An unhandled exception raised while dispatching the
|
||
request. Detected from the current exception information if
|
||
not passed. Passed to each teardown function.</p>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.9: </span>Added the <code class="docutils literal notranslate"><span class="pre">exc</span></code> argument.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.ensure_sync">
|
||
<span class="sig-name descname"><span class="pre">ensure_sync</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.app.Flask.ensure_sync" title="Link to this definition"></a></dt>
|
||
<dd><p>Ensure that the function is synchronous for WSGI workers.
|
||
Plain <code class="docutils literal notranslate"><span class="pre">def</span></code> functions are returned as-is. <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">def</span></code>
|
||
functions are wrapped to run and wait for the response.</p>
|
||
<p>Override this method to change how the app runs async views.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 2.0.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.finalize_request">
|
||
<span class="sig-name descname"><span class="pre">finalize_request</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">rv</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ft.ResponseReturnValue</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">HTTPException</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">from_error_handler</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></span><a class="headerlink" href="#flask.app.Flask.finalize_request" title="Link to this definition"></a></dt>
|
||
<dd><p>Given the return value from a view function this finalizes
|
||
the request by converting it into a response and invoking the
|
||
postprocessing functions. This is invoked for both normal
|
||
request dispatching as well as error handlers.</p>
|
||
<p>Because this means that it might be called as a result of a
|
||
failure a special safe mode is available which can be enabled
|
||
with the <cite>from_error_handler</cite> flag. If enabled, failures in
|
||
response processing will be logged and otherwise ignored.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Internal<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p></p></dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.full_dispatch_request">
|
||
<span class="sig-name descname"><span class="pre">full_dispatch_request</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></span><a class="headerlink" href="#flask.app.Flask.full_dispatch_request" title="Link to this definition"></a></dt>
|
||
<dd><p>Dispatches the request and on top of that performs request
|
||
pre and postprocessing as well as HTTP exception catching and
|
||
error handling.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.7.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.get_send_file_max_age">
|
||
<span class="sig-name descname"><span class="pre">get_send_file_max_age</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">int</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#flask.app.Flask.get_send_file_max_age" title="Link to this definition"></a></dt>
|
||
<dd><p>Used by <code class="xref py py-func docutils literal notranslate"><span class="pre">send_file()</span></code> to determine the <code class="docutils literal notranslate"><span class="pre">max_age</span></code> cache
|
||
value for a given file path if it wasn’t passed.</p>
|
||
<p>By default, this returns <code class="xref py py-data docutils literal notranslate"><span class="pre">SEND_FILE_MAX_AGE_DEFAULT</span></code> from
|
||
the configuration of <code class="xref py py-data docutils literal notranslate"><span class="pre">current_app</span></code>. This defaults
|
||
to <code class="docutils literal notranslate"><span class="pre">None</span></code>, which tells the browser to use conditional requests
|
||
instead of a timed cache, which is usually preferable.</p>
|
||
<p>Note this is a duplicate of the same method in the Flask
|
||
class.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.0: </span>The default configuration is <code class="docutils literal notranslate"><span class="pre">None</span></code> instead of 12 hours.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.9.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.handle_exception">
|
||
<span class="sig-name descname"><span class="pre">handle_exception</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">e</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Exception</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></span><a class="headerlink" href="#flask.app.Flask.handle_exception" title="Link to this definition"></a></dt>
|
||
<dd><p>Handle an exception that did not have an error handler
|
||
associated with it, or that was raised from an error handler.
|
||
This always causes a 500 <code class="docutils literal notranslate"><span class="pre">InternalServerError</span></code>.</p>
|
||
<p>Always sends the <code class="xref py py-data docutils literal notranslate"><span class="pre">got_request_exception</span></code> signal.</p>
|
||
<p>If <code class="xref py py-data docutils literal notranslate"><span class="pre">PROPAGATE_EXCEPTIONS</span></code> is <code class="docutils literal notranslate"><span class="pre">True</span></code>, such as in debug
|
||
mode, the error will be re-raised so that the debugger can
|
||
display it. Otherwise, the original exception is logged, and
|
||
an <code class="xref py py-exc docutils literal notranslate"><span class="pre">InternalServerError</span></code> is returned.</p>
|
||
<p>If an error handler is registered for <code class="docutils literal notranslate"><span class="pre">InternalServerError</span></code> or
|
||
<code class="docutils literal notranslate"><span class="pre">500</span></code>, it will be used. For consistency, the handler will
|
||
always receive the <code class="docutils literal notranslate"><span class="pre">InternalServerError</span></code>. The original
|
||
unhandled exception is available as <code class="docutils literal notranslate"><span class="pre">e.original_exception</span></code>.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.1.0: </span>Always passes the <code class="docutils literal notranslate"><span class="pre">InternalServerError</span></code> instance to the
|
||
handler, setting <code class="docutils literal notranslate"><span class="pre">original_exception</span></code> to the unhandled
|
||
error.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.1.0: </span><code class="docutils literal notranslate"><span class="pre">after_request</span></code> functions and other finalization is done
|
||
even for the default 500 response when there is no handler.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.3.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.handle_http_exception">
|
||
<span class="sig-name descname"><span class="pre">handle_http_exception</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">e</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">HTTPException</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">HTTPException</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">ft.ResponseReturnValue</span></span></span><a class="headerlink" href="#flask.app.Flask.handle_http_exception" title="Link to this definition"></a></dt>
|
||
<dd><p>Handles an HTTP exception. By default this will invoke the
|
||
registered error handlers and fall back to returning the
|
||
exception as response.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.0.3: </span><code class="docutils literal notranslate"><span class="pre">RoutingException</span></code>, used internally for actions such as
|
||
slash redirects during routing, is not passed to error
|
||
handlers.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.0: </span>Exceptions are looked up by code <em>and</em> by MRO, so
|
||
<code class="docutils literal notranslate"><span class="pre">HTTPException</span></code> subclasses can be handled with a catch-all
|
||
handler for the base <code class="docutils literal notranslate"><span class="pre">HTTPException</span></code>.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.3.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.handle_user_exception">
|
||
<span class="sig-name descname"><span class="pre">handle_user_exception</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">e</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Exception</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">HTTPException</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">ft.ResponseReturnValue</span></span></span><a class="headerlink" href="#flask.app.Flask.handle_user_exception" title="Link to this definition"></a></dt>
|
||
<dd><p>This method is called whenever an exception occurs that
|
||
should be handled. A special case is <code class="xref py py-class docutils literal notranslate"><span class="pre">HTTPException</span></code> which is forwarded to the
|
||
<a class="reference internal" href="#flask.app.Flask.handle_http_exception" title="flask.app.Flask.handle_http_exception"><code class="xref py py-meth docutils literal notranslate"><span class="pre">handle_http_exception()</span></code></a> method. This function will either
|
||
return a response value or reraise the exception with the same
|
||
traceback.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.0: </span>Key errors raised from request data like <code class="docutils literal notranslate"><span class="pre">form</span></code> show the
|
||
bad key in debug mode rather than a generic bad request
|
||
message.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.7.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.log_exception">
|
||
<span class="sig-name descname"><span class="pre">log_exception</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">exc_info</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">type</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">BaseException</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">TracebackType</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">None</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.app.Flask.log_exception" title="Link to this definition"></a></dt>
|
||
<dd><p>Logs an exception. This is called by <a class="reference internal" href="#flask.app.Flask.handle_exception" title="flask.app.Flask.handle_exception"><code class="xref py py-meth docutils literal notranslate"><span class="pre">handle_exception()</span></code></a>
|
||
if debugging is disabled and right before the handler is called.
|
||
The default implementation logs the exception as error on the
|
||
<code class="xref py py-attr docutils literal notranslate"><span class="pre">logger</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.8.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.make_default_options_response">
|
||
<span class="sig-name descname"><span class="pre">make_default_options_response</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></span><a class="headerlink" href="#flask.app.Flask.make_default_options_response" title="Link to this definition"></a></dt>
|
||
<dd><p>This method is called to create the default <code class="docutils literal notranslate"><span class="pre">OPTIONS</span></code> response.
|
||
This can be changed through subclassing to change the default
|
||
behavior of <code class="docutils literal notranslate"><span class="pre">OPTIONS</span></code> responses.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.7.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.make_response">
|
||
<span class="sig-name descname"><span class="pre">make_response</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">rv</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ft.ResponseReturnValue</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></span><a class="headerlink" href="#flask.app.Flask.make_response" title="Link to this definition"></a></dt>
|
||
<dd><p>Convert the return value from a view function to an instance of
|
||
<a class="reference internal" href="#flask.app.Flask.response_class" title="flask.app.Flask.response_class"><code class="xref py py-attr docutils literal notranslate"><span class="pre">response_class</span></code></a>.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>rv</strong> – <p>the return value from the view function. The view function
|
||
must return a response. Returning <code class="docutils literal notranslate"><span class="pre">None</span></code>, or the view ending
|
||
without returning, is not allowed. The following types are allowed
|
||
for <code class="docutils literal notranslate"><span class="pre">view_rv</span></code>:</p>
|
||
<dl class="simple">
|
||
<dt><code class="docutils literal notranslate"><span class="pre">str</span></code></dt><dd><p>A response object is created with the string encoded to UTF-8
|
||
as the body.</p>
|
||
</dd>
|
||
<dt><code class="docutils literal notranslate"><span class="pre">bytes</span></code></dt><dd><p>A response object is created with the bytes as the body.</p>
|
||
</dd>
|
||
<dt><code class="docutils literal notranslate"><span class="pre">dict</span></code></dt><dd><p>A dictionary that will be jsonify’d before being returned.</p>
|
||
</dd>
|
||
<dt><code class="docutils literal notranslate"><span class="pre">list</span></code></dt><dd><p>A list that will be jsonify’d before being returned.</p>
|
||
</dd>
|
||
<dt><code class="docutils literal notranslate"><span class="pre">generator</span></code> or <code class="docutils literal notranslate"><span class="pre">iterator</span></code></dt><dd><p>A generator that returns <code class="docutils literal notranslate"><span class="pre">str</span></code> or <code class="docutils literal notranslate"><span class="pre">bytes</span></code> to be
|
||
streamed as the response.</p>
|
||
</dd>
|
||
<dt><code class="docutils literal notranslate"><span class="pre">tuple</span></code></dt><dd><p>Either <code class="docutils literal notranslate"><span class="pre">(body,</span> <span class="pre">status,</span> <span class="pre">headers)</span></code>, <code class="docutils literal notranslate"><span class="pre">(body,</span> <span class="pre">status)</span></code>, or
|
||
<code class="docutils literal notranslate"><span class="pre">(body,</span> <span class="pre">headers)</span></code>, where <code class="docutils literal notranslate"><span class="pre">body</span></code> is any of the other types
|
||
allowed here, <code class="docutils literal notranslate"><span class="pre">status</span></code> is a string or an integer, and
|
||
<code class="docutils literal notranslate"><span class="pre">headers</span></code> is a dictionary or a list of <code class="docutils literal notranslate"><span class="pre">(key,</span> <span class="pre">value)</span></code>
|
||
tuples. If <code class="docutils literal notranslate"><span class="pre">body</span></code> is a <a class="reference internal" href="#flask.app.Flask.response_class" title="flask.app.Flask.response_class"><code class="xref py py-attr docutils literal notranslate"><span class="pre">response_class</span></code></a> instance,
|
||
<code class="docutils literal notranslate"><span class="pre">status</span></code> overwrites the exiting value and <code class="docutils literal notranslate"><span class="pre">headers</span></code> are
|
||
extended.</p>
|
||
</dd>
|
||
<dt><a class="reference internal" href="#flask.app.Flask.response_class" title="flask.app.Flask.response_class"><code class="xref py py-attr docutils literal notranslate"><span class="pre">response_class</span></code></a></dt><dd><p>The object is returned unchanged.</p>
|
||
</dd>
|
||
<dt>other <code class="xref py py-class docutils literal notranslate"><span class="pre">Response</span></code> class</dt><dd><p>The object is coerced to <a class="reference internal" href="#flask.app.Flask.response_class" title="flask.app.Flask.response_class"><code class="xref py py-attr docutils literal notranslate"><span class="pre">response_class</span></code></a>.</p>
|
||
</dd>
|
||
<dt><code class="xref py py-func docutils literal notranslate"><span class="pre">callable()</span></code></dt><dd><p>The function is called as a WSGI application. The result is
|
||
used to create a response object.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.2: </span>A generator will be converted to a streaming response.
|
||
A list will be converted to a JSON response.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.1: </span>A dict will be converted to a JSON response.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.9: </span>Previously a tuple was interpreted as the arguments for the
|
||
response object.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.make_shell_context">
|
||
<span class="sig-name descname"><span class="pre">make_shell_context</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.app.Flask.make_shell_context" title="Link to this definition"></a></dt>
|
||
<dd><p>Returns the shell context for an interactive shell for this
|
||
application. This runs all the registered shell context
|
||
processors.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.11.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.open_instance_resource">
|
||
<span class="sig-name descname"><span class="pre">open_instance_resource</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">resource</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'rb'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">encoding</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'utf-8'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">IO</span></span></span><a class="headerlink" href="#flask.app.Flask.open_instance_resource" title="Link to this definition"></a></dt>
|
||
<dd><p>Open a resource file relative to the application’s instance folder
|
||
<code class="xref py py-attr docutils literal notranslate"><span class="pre">instance_path</span></code>. Unlike <a class="reference internal" href="#flask.app.Flask.open_resource" title="flask.app.Flask.open_resource"><code class="xref py py-meth docutils literal notranslate"><span class="pre">open_resource()</span></code></a>, files in the
|
||
instance folder can be opened for writing.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>resource</strong> – Path to the resource relative to <code class="xref py py-attr docutils literal notranslate"><span class="pre">instance_path</span></code>.</p></li>
|
||
<li><p><strong>mode</strong> – Open the file in this mode.</p></li>
|
||
<li><p><strong>encoding</strong> – Open the file with this encoding when opening in text
|
||
mode. This is ignored when opening in binary mode.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.1: </span>Added the <code class="docutils literal notranslate"><span class="pre">encoding</span></code> parameter.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.open_resource">
|
||
<span class="sig-name descname"><span class="pre">open_resource</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">resource</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'rb'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">encoding</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">IO</span></span></span><a class="headerlink" href="#flask.app.Flask.open_resource" title="Link to this definition"></a></dt>
|
||
<dd><p>Open a resource file relative to <code class="xref py py-attr docutils literal notranslate"><span class="pre">root_path</span></code> for reading.</p>
|
||
<p>For example, if the file <code class="docutils literal notranslate"><span class="pre">schema.sql</span></code> is next to the file
|
||
<code class="docutils literal notranslate"><span class="pre">app.py</span></code> where the <code class="docutils literal notranslate"><span class="pre">Flask</span></code> app is defined, it can be opened
|
||
with:</p>
|
||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="k">with</span> <span class="n">app</span><span class="o">.</span><span class="n">open_resource</span><span class="p">(</span><span class="s2">"schema.sql"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||
<span class="n">conn</span><span class="o">.</span><span class="n">executescript</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
|
||
</pre></div>
|
||
</div>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>resource</strong> – Path to the resource relative to <code class="xref py py-attr docutils literal notranslate"><span class="pre">root_path</span></code>.</p></li>
|
||
<li><p><strong>mode</strong> – Open the file in this mode. Only reading is supported,
|
||
valid values are <code class="docutils literal notranslate"><span class="pre">"r"</span></code> (or <code class="docutils literal notranslate"><span class="pre">"rt"</span></code>) and <code class="docutils literal notranslate"><span class="pre">"rb"</span></code>.</p></li>
|
||
<li><p><strong>encoding</strong> – Open the file with this encoding when opening in text
|
||
mode. This is ignored when opening in binary mode.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.1: </span>Added the <code class="docutils literal notranslate"><span class="pre">encoding</span></code> parameter.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.preprocess_request">
|
||
<span class="sig-name descname"><span class="pre">preprocess_request</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">ft.ResponseReturnValue</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#flask.app.Flask.preprocess_request" title="Link to this definition"></a></dt>
|
||
<dd><p>Called before the request is dispatched. Calls
|
||
<code class="xref py py-attr docutils literal notranslate"><span class="pre">url_value_preprocessors</span></code> registered with the app and the
|
||
current blueprint (if any). Then calls <code class="xref py py-attr docutils literal notranslate"><span class="pre">before_request_funcs</span></code>
|
||
registered with the app and the blueprint.</p>
|
||
<p>If any <code class="xref py py-meth docutils literal notranslate"><span class="pre">before_request()</span></code> handler returns a non-None value, the
|
||
value is handled as if it was the return value from the view, and
|
||
further request handling is stopped.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.process_response">
|
||
<span class="sig-name descname"><span class="pre">process_response</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">response</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></span><a class="headerlink" href="#flask.app.Flask.process_response" title="Link to this definition"></a></dt>
|
||
<dd><p>Can be overridden in order to modify the response object
|
||
before it’s sent to the WSGI server. By default this will
|
||
call all the <code class="xref py py-meth docutils literal notranslate"><span class="pre">after_request()</span></code> decorated functions.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.5: </span>As of Flask 0.5 the functions registered for after request
|
||
execution are called in reverse order of registration.</p>
|
||
</div>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>response</strong> – a <a class="reference internal" href="#flask.app.Flask.response_class" title="flask.app.Flask.response_class"><code class="xref py py-attr docutils literal notranslate"><span class="pre">response_class</span></code></a> object.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>a new response object or the same, has to be an
|
||
instance of <a class="reference internal" href="#flask.app.Flask.response_class" title="flask.app.Flask.response_class"><code class="xref py py-attr docutils literal notranslate"><span class="pre">response_class</span></code></a>.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.request_class">
|
||
<span class="sig-name descname"><span class="pre">request_class</span></span><a class="headerlink" href="#flask.app.Flask.request_class" title="Link to this definition"></a></dt>
|
||
<dd><p>The class that is used for request objects. See <code class="xref py py-class docutils literal notranslate"><span class="pre">Request</span></code>
|
||
for more information.</p>
|
||
<p>alias of <a class="reference internal" href="#flask.wrappers.Request" title="flask.wrappers.Request"><code class="xref py py-class docutils literal notranslate"><span class="pre">Request</span></code></a></p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.request_context">
|
||
<span class="sig-name descname"><span class="pre">request_context</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">environ</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">WSGIEnvironment</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.ctx.RequestContext" title="flask.ctx.RequestContext"><span class="pre">RequestContext</span></a></span></span><a class="headerlink" href="#flask.app.Flask.request_context" title="Link to this definition"></a></dt>
|
||
<dd><p>Create a <a class="reference internal" href="#flask.ctx.RequestContext" title="flask.ctx.RequestContext"><code class="xref py py-class docutils literal notranslate"><span class="pre">RequestContext</span></code></a> representing a
|
||
WSGI environment. Use a <code class="docutils literal notranslate"><span class="pre">with</span></code> block to push the context,
|
||
which will make <code class="xref py py-data docutils literal notranslate"><span class="pre">request</span></code> point at this request.</p>
|
||
<p>See <span class="xref std std-doc">/reqcontext</span>.</p>
|
||
<p>Typically you should not call this from your own code. A request
|
||
context is automatically pushed by the <a class="reference internal" href="#flask.app.Flask.wsgi_app" title="flask.app.Flask.wsgi_app"><code class="xref py py-meth docutils literal notranslate"><span class="pre">wsgi_app()</span></code></a> when
|
||
handling a request. Use <a class="reference internal" href="#flask.app.Flask.test_request_context" title="flask.app.Flask.test_request_context"><code class="xref py py-meth docutils literal notranslate"><span class="pre">test_request_context()</span></code></a> to create
|
||
an environment and context instead of this method.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>environ</strong> – a WSGI environment</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.response_class">
|
||
<span class="sig-name descname"><span class="pre">response_class</span></span><a class="headerlink" href="#flask.app.Flask.response_class" title="Link to this definition"></a></dt>
|
||
<dd><p>The class that is used for response objects. See
|
||
<code class="xref py py-class docutils literal notranslate"><span class="pre">Response</span></code> for more information.</p>
|
||
<p>alias of <a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><code class="xref py py-class docutils literal notranslate"><span class="pre">Response</span></code></a></p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.run">
|
||
<span class="sig-name descname"><span class="pre">run</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">host</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">debug</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">load_dotenv</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">options</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.app.Flask.run" title="Link to this definition"></a></dt>
|
||
<dd><p>Runs the application on a local development server.</p>
|
||
<p>Do not use <code class="docutils literal notranslate"><span class="pre">run()</span></code> in a production setting. It is not intended to
|
||
meet security and performance requirements for a production server.
|
||
Instead, see <span class="xref std std-doc">/deploying/index</span> for WSGI server recommendations.</p>
|
||
<p>If the <code class="xref py py-attr docutils literal notranslate"><span class="pre">debug</span></code> flag is set the server will automatically reload
|
||
for code changes and show a debugger in case an exception happened.</p>
|
||
<p>If you want to run the application in debug mode, but disable the
|
||
code execution on the interactive debugger, you can pass
|
||
<code class="docutils literal notranslate"><span class="pre">use_evalex=False</span></code> as parameter. This will keep the debugger’s
|
||
traceback screen active, but disable code execution.</p>
|
||
<p>It is not recommended to use this function for development with
|
||
automatic reloading as this is badly supported. Instead you should
|
||
be using the <strong class="command">flask</strong> command line script’s <code class="docutils literal notranslate"><span class="pre">run</span></code> support.</p>
|
||
<div class="admonition-keep-in-mind admonition">
|
||
<p class="admonition-title">Keep in Mind</p>
|
||
<p>Flask will suppress any server error with a generic error page
|
||
unless it is in debug mode. As such to enable just the
|
||
interactive debugger without the code reloading, you have to
|
||
invoke <a class="reference internal" href="#flask.app.Flask.run" title="flask.app.Flask.run"><code class="xref py py-meth docutils literal notranslate"><span class="pre">run()</span></code></a> with <code class="docutils literal notranslate"><span class="pre">debug=True</span></code> and <code class="docutils literal notranslate"><span class="pre">use_reloader=False</span></code>.
|
||
Setting <code class="docutils literal notranslate"><span class="pre">use_debugger</span></code> to <code class="docutils literal notranslate"><span class="pre">True</span></code> without being in debug mode
|
||
won’t catch any exceptions because there won’t be any to
|
||
catch.</p>
|
||
</div>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>host</strong> – the hostname to listen on. Set this to <code class="docutils literal notranslate"><span class="pre">'0.0.0.0'</span></code> to
|
||
have the server available externally as well. Defaults to
|
||
<code class="docutils literal notranslate"><span class="pre">'127.0.0.1'</span></code> or the host in the <code class="docutils literal notranslate"><span class="pre">SERVER_NAME</span></code> config variable
|
||
if present.</p></li>
|
||
<li><p><strong>port</strong> – the port of the webserver. Defaults to <code class="docutils literal notranslate"><span class="pre">5000</span></code> or the
|
||
port defined in the <code class="docutils literal notranslate"><span class="pre">SERVER_NAME</span></code> config variable if present.</p></li>
|
||
<li><p><strong>debug</strong> – if given, enable or disable debug mode. See
|
||
<code class="xref py py-attr docutils literal notranslate"><span class="pre">debug</span></code>.</p></li>
|
||
<li><p><strong>load_dotenv</strong> – Load the nearest <code class="file docutils literal notranslate"><span class="pre">.env</span></code> and <code class="file docutils literal notranslate"><span class="pre">.flaskenv</span></code>
|
||
files to set environment variables. Will also change the working
|
||
directory to the directory containing the first file found.</p></li>
|
||
<li><p><strong>options</strong> – the options to be forwarded to the underlying Werkzeug
|
||
server. See <code class="xref py py-func docutils literal notranslate"><span class="pre">werkzeug.serving.run_simple()</span></code> for more
|
||
information.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.0: </span>If installed, python-dotenv will be used to load environment
|
||
variables from <code class="file docutils literal notranslate"><span class="pre">.env</span></code> and <code class="file docutils literal notranslate"><span class="pre">.flaskenv</span></code> files.</p>
|
||
<p>The <span class="target" id="index-0"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">FLASK_DEBUG</span></code> environment variable will override <code class="xref py py-attr docutils literal notranslate"><span class="pre">debug</span></code>.</p>
|
||
<p>Threaded mode is enabled by default.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.10: </span>The default port is now picked from the <code class="docutils literal notranslate"><span class="pre">SERVER_NAME</span></code>
|
||
variable.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.send_static_file">
|
||
<span class="sig-name descname"><span class="pre">send_static_file</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></span><a class="headerlink" href="#flask.app.Flask.send_static_file" title="Link to this definition"></a></dt>
|
||
<dd><p>The view function used to serve files from
|
||
<code class="xref py py-attr docutils literal notranslate"><span class="pre">static_folder</span></code>. A route is automatically registered for
|
||
this view at <code class="xref py py-attr docutils literal notranslate"><span class="pre">static_url_path</span></code> if <code class="xref py py-attr docutils literal notranslate"><span class="pre">static_folder</span></code> is
|
||
set.</p>
|
||
<p>Note this is a duplicate of the same method in the Flask
|
||
class.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.5.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.session_interface">
|
||
<span class="sig-name descname"><span class="pre">session_interface</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="#flask.sessions.SessionInterface" title="flask.sessions.SessionInterface"><span class="pre">SessionInterface</span></a></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre"><flask.sessions.SecureCookieSessionInterface</span> <span class="pre">object></span></em><a class="headerlink" href="#flask.app.Flask.session_interface" title="Link to this definition"></a></dt>
|
||
<dd><p>the session interface to use. By default an instance of
|
||
<a class="reference internal" href="#flask.sessions.SecureCookieSessionInterface" title="flask.sessions.SecureCookieSessionInterface"><code class="xref py py-class docutils literal notranslate"><span class="pre">SecureCookieSessionInterface</span></code></a> is used here.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.8.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.test_cli_runner">
|
||
<span class="sig-name descname"><span class="pre">test_cli_runner</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.testing.FlaskCliRunner" title="flask.testing.FlaskCliRunner"><span class="pre">FlaskCliRunner</span></a></span></span><a class="headerlink" href="#flask.app.Flask.test_cli_runner" title="Link to this definition"></a></dt>
|
||
<dd><p>Create a CLI runner for testing CLI commands.
|
||
See <span class="xref std std-ref">testing-cli</span>.</p>
|
||
<p>Returns an instance of <code class="xref py py-attr docutils literal notranslate"><span class="pre">test_cli_runner_class</span></code>, by default
|
||
<a class="reference internal" href="#flask.testing.FlaskCliRunner" title="flask.testing.FlaskCliRunner"><code class="xref py py-class docutils literal notranslate"><span class="pre">FlaskCliRunner</span></code></a>. The Flask app object is
|
||
passed as the first argument.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 1.0.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.test_client">
|
||
<span class="sig-name descname"><span class="pre">test_client</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">use_cookies</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.testing.FlaskClient" title="flask.testing.FlaskClient"><span class="pre">FlaskClient</span></a></span></span><a class="headerlink" href="#flask.app.Flask.test_client" title="Link to this definition"></a></dt>
|
||
<dd><p>Creates a test client for this application. For information
|
||
about unit testing head over to <span class="xref std std-doc">/testing</span>.</p>
|
||
<p>Note that if you are testing for assertions or exceptions in your
|
||
application code, you must set <code class="docutils literal notranslate"><span class="pre">app.testing</span> <span class="pre">=</span> <span class="pre">True</span></code> in order for the
|
||
exceptions to propagate to the test client. Otherwise, the exception
|
||
will be handled by the application (not visible to the test client) and
|
||
the only indication of an AssertionError or other exception will be a
|
||
500 status code response to the test client. See the <code class="xref py py-attr docutils literal notranslate"><span class="pre">testing</span></code>
|
||
attribute. For example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">app</span><span class="o">.</span><span class="n">testing</span> <span class="o">=</span> <span class="kc">True</span>
|
||
<span class="n">client</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">test_client</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The test client can be used in a <code class="docutils literal notranslate"><span class="pre">with</span></code> block to defer the closing down
|
||
of the context until the end of the <code class="docutils literal notranslate"><span class="pre">with</span></code> block. This is useful if
|
||
you want to access the context locals for testing:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">with</span> <span class="n">app</span><span class="o">.</span><span class="n">test_client</span><span class="p">()</span> <span class="k">as</span> <span class="n">c</span><span class="p">:</span>
|
||
<span class="n">rv</span> <span class="o">=</span> <span class="n">c</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'/?vodka=42'</span><span class="p">)</span>
|
||
<span class="k">assert</span> <span class="n">request</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s1">'vodka'</span><span class="p">]</span> <span class="o">==</span> <span class="s1">'42'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Additionally, you may pass optional keyword arguments that will then
|
||
be passed to the application’s <code class="xref py py-attr docutils literal notranslate"><span class="pre">test_client_class</span></code> constructor.
|
||
For example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">flask.testing</span><span class="w"> </span><span class="kn">import</span> <span class="n">FlaskClient</span>
|
||
|
||
<span class="k">class</span><span class="w"> </span><span class="nc">CustomClient</span><span class="p">(</span><span class="n">FlaskClient</span><span class="p">):</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_authentication</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"authentication"</span><span class="p">)</span>
|
||
<span class="nb">super</span><span class="p">(</span><span class="n">CustomClient</span><span class="p">,</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||
|
||
<span class="n">app</span><span class="o">.</span><span class="n">test_client_class</span> <span class="o">=</span> <span class="n">CustomClient</span>
|
||
<span class="n">client</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">test_client</span><span class="p">(</span><span class="n">authentication</span><span class="o">=</span><span class="s1">'Basic ....'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>See <a class="reference internal" href="#flask.testing.FlaskClient" title="flask.testing.FlaskClient"><code class="xref py py-class docutils literal notranslate"><span class="pre">FlaskClient</span></code></a> for more information.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.4: </span>added support for <code class="docutils literal notranslate"><span class="pre">with</span></code> block usage for the client.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.7: </span>The <cite>use_cookies</cite> parameter was added as well as the ability
|
||
to override the client to be used by setting the
|
||
<code class="xref py py-attr docutils literal notranslate"><span class="pre">test_client_class</span></code> attribute.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.11: </span>Added <cite>**kwargs</cite> to support passing additional keyword arguments to
|
||
the constructor of <code class="xref py py-attr docutils literal notranslate"><span class="pre">test_client_class</span></code>.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.test_request_context">
|
||
<span class="sig-name descname"><span class="pre">test_request_context</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.ctx.RequestContext" title="flask.ctx.RequestContext"><span class="pre">RequestContext</span></a></span></span><a class="headerlink" href="#flask.app.Flask.test_request_context" title="Link to this definition"></a></dt>
|
||
<dd><p>Create a <a class="reference internal" href="#flask.ctx.RequestContext" title="flask.ctx.RequestContext"><code class="xref py py-class docutils literal notranslate"><span class="pre">RequestContext</span></code></a> for a WSGI
|
||
environment created from the given values. This is mostly useful
|
||
during testing, where you may want to run a function that uses
|
||
request data without dispatching a full request.</p>
|
||
<p>See <span class="xref std std-doc">/reqcontext</span>.</p>
|
||
<p>Use a <code class="docutils literal notranslate"><span class="pre">with</span></code> block to push the context, which will make
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">request</span></code> point at the request for the created
|
||
environment.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">with</span> <span class="n">app</span><span class="o">.</span><span class="n">test_request_context</span><span class="p">(</span><span class="o">...</span><span class="p">):</span>
|
||
<span class="n">generate_report</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>When using the shell, it may be easier to push and pop the
|
||
context manually to avoid indentation.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">ctx</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">test_request_context</span><span class="p">(</span><span class="o">...</span><span class="p">)</span>
|
||
<span class="n">ctx</span><span class="o">.</span><span class="n">push</span><span class="p">()</span>
|
||
<span class="o">...</span>
|
||
<span class="n">ctx</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Takes the same arguments as Werkzeug’s
|
||
<code class="xref py py-class docutils literal notranslate"><span class="pre">EnvironBuilder</span></code>, with some defaults from
|
||
the application. See the linked Werkzeug docs for most of the
|
||
available arguments. Flask-specific behavior is listed here.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>path</strong> – URL path being requested.</p></li>
|
||
<li><p><strong>base_url</strong> – Base URL where the app is being served, which
|
||
<code class="docutils literal notranslate"><span class="pre">path</span></code> is relative to. If not given, built from
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">PREFERRED_URL_SCHEME</span></code>, <code class="docutils literal notranslate"><span class="pre">subdomain</span></code>,
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">SERVER_NAME</span></code>, and <code class="xref py py-data docutils literal notranslate"><span class="pre">APPLICATION_ROOT</span></code>.</p></li>
|
||
<li><p><strong>subdomain</strong> – Subdomain name to append to
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">SERVER_NAME</span></code>.</p></li>
|
||
<li><p><strong>url_scheme</strong> – Scheme to use instead of
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">PREFERRED_URL_SCHEME</span></code>.</p></li>
|
||
<li><p><strong>data</strong> – The request body, either as a string or a dict of
|
||
form keys and values.</p></li>
|
||
<li><p><strong>json</strong> – If given, this is serialized as JSON and passed as
|
||
<code class="docutils literal notranslate"><span class="pre">data</span></code>. Also defaults <code class="docutils literal notranslate"><span class="pre">content_type</span></code> to
|
||
<code class="docutils literal notranslate"><span class="pre">application/json</span></code>.</p></li>
|
||
<li><p><strong>args</strong> – other positional arguments passed to
|
||
<code class="xref py py-class docutils literal notranslate"><span class="pre">EnvironBuilder</span></code>.</p></li>
|
||
<li><p><strong>kwargs</strong> – other keyword arguments passed to
|
||
<code class="xref py py-class docutils literal notranslate"><span class="pre">EnvironBuilder</span></code>.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.update_template_context">
|
||
<span class="sig-name descname"><span class="pre">update_template_context</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.app.Flask.update_template_context" title="Link to this definition"></a></dt>
|
||
<dd><p>Update the template context with some commonly used variables.
|
||
This injects request, session, config and g into the template
|
||
context as well as everything template context processors want
|
||
to inject. Note that the as of Flask 0.6, the original values
|
||
in the context will not be overridden if a context processor
|
||
decides to return a value with the same key.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>context</strong> – the context as a dictionary that is updated in place
|
||
to add extra variables.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.url_for">
|
||
<span class="sig-name descname"><span class="pre">url_for</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">endpoint</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_anchor</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_method</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_scheme</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_external</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">values</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#flask.app.Flask.url_for" title="Link to this definition"></a></dt>
|
||
<dd><p>Generate a URL to the given endpoint with the given values.</p>
|
||
<p>This is called by <code class="xref py py-func docutils literal notranslate"><span class="pre">flask.url_for()</span></code>, and can be called
|
||
directly as well.</p>
|
||
<p>An <em>endpoint</em> is the name of a URL rule, usually added with
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">@app.route()</span></code>, and usually the same name as the
|
||
view function. A route defined in a <code class="xref py py-class docutils literal notranslate"><span class="pre">Blueprint</span></code>
|
||
will prepend the blueprint’s name separated by a <code class="docutils literal notranslate"><span class="pre">.</span></code> to the
|
||
endpoint.</p>
|
||
<p>In some cases, such as email messages, you want URLs to include
|
||
the scheme and domain, like <code class="docutils literal notranslate"><span class="pre">https://example.com/hello</span></code>. When
|
||
not in an active request, URLs will be external by default, but
|
||
this requires setting <code class="xref py py-data docutils literal notranslate"><span class="pre">SERVER_NAME</span></code> so Flask knows what
|
||
domain to use. <code class="xref py py-data docutils literal notranslate"><span class="pre">APPLICATION_ROOT</span></code> and
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">PREFERRED_URL_SCHEME</span></code> should also be configured as
|
||
needed. This config is only used when not in an active request.</p>
|
||
<p>Functions can be decorated with <code class="xref py py-meth docutils literal notranslate"><span class="pre">url_defaults()</span></code> to modify
|
||
keyword arguments before the URL is built.</p>
|
||
<p>If building fails for some reason, such as an unknown endpoint
|
||
or incorrect values, the app’s <code class="xref py py-meth docutils literal notranslate"><span class="pre">handle_url_build_error()</span></code>
|
||
method is called. If that returns a string, that is returned,
|
||
otherwise a <code class="xref py py-exc docutils literal notranslate"><span class="pre">BuildError</span></code> is raised.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>endpoint</strong> – The endpoint name associated with the URL to
|
||
generate. If this starts with a <code class="docutils literal notranslate"><span class="pre">.</span></code>, the current blueprint
|
||
name (if any) will be used.</p></li>
|
||
<li><p><strong>_anchor</strong> – If given, append this as <code class="docutils literal notranslate"><span class="pre">#anchor</span></code> to the URL.</p></li>
|
||
<li><p><strong>_method</strong> – If given, generate the URL associated with this
|
||
method for the endpoint.</p></li>
|
||
<li><p><strong>_scheme</strong> – If given, the URL will have this scheme if it
|
||
is external.</p></li>
|
||
<li><p><strong>_external</strong> – If given, prefer the URL to be internal
|
||
(False) or require it to be external (True). External URLs
|
||
include the scheme and domain. When not in an active
|
||
request, URLs are external by default.</p></li>
|
||
<li><p><strong>values</strong> – Values to use for the variable parts of the URL
|
||
rule. Unknown keys are appended as query string arguments,
|
||
like <code class="docutils literal notranslate"><span class="pre">?a=b&c=d</span></code>.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 2.2: </span>Moved from <code class="docutils literal notranslate"><span class="pre">flask.url_for</span></code>, which calls this method.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.app.Flask.wsgi_app">
|
||
<span class="sig-name descname"><span class="pre">wsgi_app</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">environ</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">WSGIEnvironment</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">start_response</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">StartResponse</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">cabc.Iterable</span><span class="p"><span class="pre">[</span></span><span class="pre">bytes</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.app.Flask.wsgi_app" title="Link to this definition"></a></dt>
|
||
<dd><p>The actual WSGI application. This is not implemented in
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">__call__()</span></code> so that middlewares can be applied without
|
||
losing a reference to the app object. Instead of doing this:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">app</span> <span class="o">=</span> <span class="n">MyMiddleware</span><span class="p">(</span><span class="n">app</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>It’s a better idea to do this instead:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">app</span><span class="o">.</span><span class="n">wsgi_app</span> <span class="o">=</span> <span class="n">MyMiddleware</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">wsgi_app</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Then you still have the original application object around and
|
||
can continue to call methods on it.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.7: </span>Teardown events for the request and app contexts are called
|
||
even if an unhandled error occurs. Other events may not be
|
||
called depending on when an error occurs during dispatch.
|
||
See <span class="xref std std-ref">callbacks-and-errors</span>.</p>
|
||
</div>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>environ</strong> – A WSGI environment.</p></li>
|
||
<li><p><strong>start_response</strong> – A callable accepting a status code,
|
||
a list of headers, and an optional exception context to
|
||
start the response.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-flask.blueprints">
|
||
<span id="flask-blueprints-module"></span><h2>flask.blueprints module<a class="headerlink" href="#module-flask.blueprints" title="Link to this heading"></a></h2>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.blueprints.Blueprint">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.blueprints.</span></span><span class="sig-name descname"><span class="pre">Blueprint</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name:</span> <span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">import_name:</span> <span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">static_folder:</span> <span class="pre">str</span> <span class="pre">|</span> <span class="pre">~os.PathLike[str]</span> <span class="pre">|</span> <span class="pre">None</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">static_url_path:</span> <span class="pre">str</span> <span class="pre">|</span> <span class="pre">None</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">template_folder:</span> <span class="pre">str</span> <span class="pre">|</span> <span class="pre">~os.PathLike[str]</span> <span class="pre">|</span> <span class="pre">None</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">url_prefix:</span> <span class="pre">str</span> <span class="pre">|</span> <span class="pre">None</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">subdomain:</span> <span class="pre">str</span> <span class="pre">|</span> <span class="pre">None</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">url_defaults:</span> <span class="pre">dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">~typing.Any]</span> <span class="pre">|</span> <span class="pre">None</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">root_path:</span> <span class="pre">str</span> <span class="pre">|</span> <span class="pre">None</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cli_group:</span> <span class="pre">str</span> <span class="pre">|</span> <span class="pre">None</span> <span class="pre">=</span> <span class="pre"><object</span> <span class="pre">object></span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.blueprints.Blueprint" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Blueprint</span></code></p>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.blueprints.Blueprint.cli">
|
||
<span class="sig-name descname"><span class="pre">cli</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Group</span></em><a class="headerlink" href="#flask.blueprints.Blueprint.cli" title="Link to this definition"></a></dt>
|
||
<dd><p>The Click command group for registering CLI commands for this
|
||
object. The commands are available from the <code class="docutils literal notranslate"><span class="pre">flask</span></code> command
|
||
once the application has been discovered and blueprints have
|
||
been registered.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.blueprints.Blueprint.get_send_file_max_age">
|
||
<span class="sig-name descname"><span class="pre">get_send_file_max_age</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">int</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#flask.blueprints.Blueprint.get_send_file_max_age" title="Link to this definition"></a></dt>
|
||
<dd><p>Used by <code class="xref py py-func docutils literal notranslate"><span class="pre">send_file()</span></code> to determine the <code class="docutils literal notranslate"><span class="pre">max_age</span></code> cache
|
||
value for a given file path if it wasn’t passed.</p>
|
||
<p>By default, this returns <code class="xref py py-data docutils literal notranslate"><span class="pre">SEND_FILE_MAX_AGE_DEFAULT</span></code> from
|
||
the configuration of <code class="xref py py-data docutils literal notranslate"><span class="pre">current_app</span></code>. This defaults
|
||
to <code class="docutils literal notranslate"><span class="pre">None</span></code>, which tells the browser to use conditional requests
|
||
instead of a timed cache, which is usually preferable.</p>
|
||
<p>Note this is a duplicate of the same method in the Flask
|
||
class.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.0: </span>The default configuration is <code class="docutils literal notranslate"><span class="pre">None</span></code> instead of 12 hours.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.9.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.blueprints.Blueprint.open_resource">
|
||
<span class="sig-name descname"><span class="pre">open_resource</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">resource</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'rb'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">encoding</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'utf-8'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">IO</span></span></span><a class="headerlink" href="#flask.blueprints.Blueprint.open_resource" title="Link to this definition"></a></dt>
|
||
<dd><p>Open a resource file relative to <code class="xref py py-attr docutils literal notranslate"><span class="pre">root_path</span></code> for reading. The
|
||
blueprint-relative equivalent of the app’s <a class="reference internal" href="#flask.app.Flask.open_resource" title="flask.app.Flask.open_resource"><code class="xref py py-meth docutils literal notranslate"><span class="pre">open_resource()</span></code></a>
|
||
method.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>resource</strong> – Path to the resource relative to <code class="xref py py-attr docutils literal notranslate"><span class="pre">root_path</span></code>.</p></li>
|
||
<li><p><strong>mode</strong> – Open the file in this mode. Only reading is supported,
|
||
valid values are <code class="docutils literal notranslate"><span class="pre">"r"</span></code> (or <code class="docutils literal notranslate"><span class="pre">"rt"</span></code>) and <code class="docutils literal notranslate"><span class="pre">"rb"</span></code>.</p></li>
|
||
<li><p><strong>encoding</strong> – Open the file with this encoding when opening in text
|
||
mode. This is ignored when opening in binary mode.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.1: </span>Added the <code class="docutils literal notranslate"><span class="pre">encoding</span></code> parameter.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.blueprints.Blueprint.send_static_file">
|
||
<span class="sig-name descname"><span class="pre">send_static_file</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></span><a class="headerlink" href="#flask.blueprints.Blueprint.send_static_file" title="Link to this definition"></a></dt>
|
||
<dd><p>The view function used to serve files from
|
||
<code class="xref py py-attr docutils literal notranslate"><span class="pre">static_folder</span></code>. A route is automatically registered for
|
||
this view at <code class="xref py py-attr docutils literal notranslate"><span class="pre">static_url_path</span></code> if <code class="xref py py-attr docutils literal notranslate"><span class="pre">static_folder</span></code> is
|
||
set.</p>
|
||
<p>Note this is a duplicate of the same method in the Flask
|
||
class.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.5.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-flask.cli">
|
||
<span id="flask-cli-module"></span><h2>flask.cli module<a class="headerlink" href="#module-flask.cli" title="Link to this heading"></a></h2>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.cli.AppGroup">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">AppGroup</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">commands</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">MutableMapping</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Command</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Sequence</span><span class="p"><span class="pre">[</span></span><span class="pre">Command</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">attrs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.cli.AppGroup" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Group</span></code></p>
|
||
<p>This works similar to a regular click <code class="xref py py-class docutils literal notranslate"><span class="pre">Group</span></code> but it
|
||
changes the behavior of the <a class="reference internal" href="#flask.cli.AppGroup.command" title="flask.cli.AppGroup.command"><code class="xref py py-meth docutils literal notranslate"><span class="pre">command()</span></code></a> decorator so that it
|
||
automatically wraps the functions in <a class="reference internal" href="#flask.cli.with_appcontext" title="flask.cli.with_appcontext"><code class="xref py py-func docutils literal notranslate"><span class="pre">with_appcontext()</span></code></a>.</p>
|
||
<p>Not to be confused with <a class="reference internal" href="#flask.cli.FlaskGroup" title="flask.cli.FlaskGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">FlaskGroup</span></code></a>.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.cli.AppGroup.command">
|
||
<span class="sig-name descname"><span class="pre">command</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Command</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.cli.AppGroup.command" title="Link to this definition"></a></dt>
|
||
<dd><p>This works exactly like the method of the same name on a regular
|
||
<code class="xref py py-class docutils literal notranslate"><span class="pre">click.Group</span></code> but it wraps callbacks in <a class="reference internal" href="#flask.cli.with_appcontext" title="flask.cli.with_appcontext"><code class="xref py py-func docutils literal notranslate"><span class="pre">with_appcontext()</span></code></a>
|
||
unless it’s disabled by passing <code class="docutils literal notranslate"><span class="pre">with_appcontext=False</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.cli.AppGroup.group">
|
||
<span class="sig-name descname"><span class="pre">group</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Group</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.cli.AppGroup.group" title="Link to this definition"></a></dt>
|
||
<dd><p>This works exactly like the method of the same name on a regular
|
||
<code class="xref py py-class docutils literal notranslate"><span class="pre">click.Group</span></code> but it defaults the group class to
|
||
<a class="reference internal" href="#flask.cli.AppGroup" title="flask.cli.AppGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">AppGroup</span></code></a>.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.cli.CertParamType">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">CertParamType</span></span><a class="headerlink" href="#flask.cli.CertParamType" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">ParamType</span></code></p>
|
||
<p>Click option type for the <code class="docutils literal notranslate"><span class="pre">--cert</span></code> option. Allows either an
|
||
existing file, the string <code class="docutils literal notranslate"><span class="pre">'adhoc'</span></code>, or an import for a
|
||
<code class="xref py py-class docutils literal notranslate"><span class="pre">SSLContext</span></code> object.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.cli.CertParamType.convert">
|
||
<span class="sig-name descname"><span class="pre">convert</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">param</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Parameter</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ctx</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Context</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Any</span></span></span><a class="headerlink" href="#flask.cli.CertParamType.convert" title="Link to this definition"></a></dt>
|
||
<dd><p>Convert the value to the correct type. This is not called if
|
||
the value is <code class="docutils literal notranslate"><span class="pre">None</span></code> (the missing value).</p>
|
||
<p>This must accept string values from the command line, as well as
|
||
values that are already the correct type. It may also convert
|
||
other compatible types.</p>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">param</span></code> and <code class="docutils literal notranslate"><span class="pre">ctx</span></code> arguments may be <code class="docutils literal notranslate"><span class="pre">None</span></code> in certain
|
||
situations, such as when converting prompt input.</p>
|
||
<p>If the value cannot be converted, call <code class="xref py py-meth docutils literal notranslate"><span class="pre">fail()</span></code> with a
|
||
descriptive message.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>value</strong> – The value to convert.</p></li>
|
||
<li><p><strong>param</strong> – The parameter that is using this type to convert
|
||
its value. May be <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
|
||
<li><p><strong>ctx</strong> – The current context that arrived at this value. May
|
||
be <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.cli.CertParamType.name">
|
||
<span class="sig-name descname"><span class="pre">name</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'path'</span></em><a class="headerlink" href="#flask.cli.CertParamType.name" title="Link to this definition"></a></dt>
|
||
<dd><p>the descriptive name of this type</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.cli.FlaskGroup">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">FlaskGroup</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">add_default_commands</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">create_app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">add_version_option</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">load_dotenv</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">set_debug_flag</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">extra</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.cli.FlaskGroup" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="#flask.cli.AppGroup" title="flask.cli.AppGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">AppGroup</span></code></a></p>
|
||
<p>Special subclass of the <a class="reference internal" href="#flask.cli.AppGroup" title="flask.cli.AppGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">AppGroup</span></code></a> group that supports
|
||
loading more commands from the configured Flask app. Normally a
|
||
developer does not have to interface with this class but there are
|
||
some very advanced use cases for which it makes sense to create an
|
||
instance of this. see <span class="xref std std-ref">custom-scripts</span>.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>add_default_commands</strong> – if this is True then the default run and
|
||
shell commands will be added.</p></li>
|
||
<li><p><strong>add_version_option</strong> – adds the <code class="docutils literal notranslate"><span class="pre">--version</span></code> option.</p></li>
|
||
<li><p><strong>create_app</strong> – an optional callback that is passed the script info and
|
||
returns the loaded app.</p></li>
|
||
<li><p><strong>load_dotenv</strong> – Load the nearest <code class="file docutils literal notranslate"><span class="pre">.env</span></code> and <code class="file docutils literal notranslate"><span class="pre">.flaskenv</span></code>
|
||
files to set environment variables. Will also change the working
|
||
directory to the directory containing the first file found.</p></li>
|
||
<li><p><strong>set_debug_flag</strong> – Set the app’s debug flag.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.1: </span><code class="docutils literal notranslate"><span class="pre">-e</span> <span class="pre">path</span></code> takes precedence over default <code class="docutils literal notranslate"><span class="pre">.env</span></code> and <code class="docutils literal notranslate"><span class="pre">.flaskenv</span></code> files.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.2: </span>Added the <code class="docutils literal notranslate"><span class="pre">-A/--app</span></code>, <code class="docutils literal notranslate"><span class="pre">--debug/--no-debug</span></code>, <code class="docutils literal notranslate"><span class="pre">-e/--env-file</span></code> options.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.2: </span>An app context is pushed when running <code class="docutils literal notranslate"><span class="pre">app.cli</span></code> commands, so
|
||
<code class="docutils literal notranslate"><span class="pre">@with_appcontext</span></code> is no longer required for those commands.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.0: </span>If installed, python-dotenv will be used to load environment variables
|
||
from <code class="file docutils literal notranslate"><span class="pre">.env</span></code> and <code class="file docutils literal notranslate"><span class="pre">.flaskenv</span></code> files.</p>
|
||
</div>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.cli.FlaskGroup.get_command">
|
||
<span class="sig-name descname"><span class="pre">get_command</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ctx</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Context</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Command</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#flask.cli.FlaskGroup.get_command" title="Link to this definition"></a></dt>
|
||
<dd><p>Given a context and a command name, this returns a
|
||
<code class="xref py py-class docutils literal notranslate"><span class="pre">Command</span></code> object if it exists or returns <cite>None</cite>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.cli.FlaskGroup.list_commands">
|
||
<span class="sig-name descname"><span class="pre">list_commands</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ctx</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Context</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.cli.FlaskGroup.list_commands" title="Link to this definition"></a></dt>
|
||
<dd><p>Returns a list of subcommand names in the order they should
|
||
appear.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.cli.FlaskGroup.make_context">
|
||
<span class="sig-name descname"><span class="pre">make_context</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">info_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parent</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Context</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">extra</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Context</span></span></span><a class="headerlink" href="#flask.cli.FlaskGroup.make_context" title="Link to this definition"></a></dt>
|
||
<dd><p>This function when given an info name and arguments will kick
|
||
off the parsing and create a new <code class="xref py py-class docutils literal notranslate"><span class="pre">Context</span></code>. It does not
|
||
invoke the actual command callback though.</p>
|
||
<p>To quickly customize the context class used without overriding
|
||
this method, set the <code class="xref py py-attr docutils literal notranslate"><span class="pre">context_class</span></code> attribute.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>info_name</strong> – the info name for this invocation. Generally this
|
||
is the most descriptive name for the script or
|
||
command. For the toplevel script it’s usually
|
||
the name of the script, for commands below it’s
|
||
the name of the command.</p></li>
|
||
<li><p><strong>args</strong> – the arguments to parse as list of strings.</p></li>
|
||
<li><p><strong>parent</strong> – the parent context if available.</p></li>
|
||
<li><p><strong>extra</strong> – extra keyword arguments forwarded to the context
|
||
constructor.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 8.0: </span>Added the <code class="xref py py-attr docutils literal notranslate"><span class="pre">context_class</span></code> attribute.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.cli.FlaskGroup.parse_args">
|
||
<span class="sig-name descname"><span class="pre">parse_args</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ctx</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Context</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.cli.FlaskGroup.parse_args" title="Link to this definition"></a></dt>
|
||
<dd><p>Given a context and a list of arguments this creates the parser
|
||
and parses the arguments, then modifies the context as necessary.
|
||
This is automatically invoked by <a class="reference internal" href="#flask.cli.FlaskGroup.make_context" title="flask.cli.FlaskGroup.make_context"><code class="xref py py-meth docutils literal notranslate"><span class="pre">make_context()</span></code></a>.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py exception">
|
||
<dt class="sig sig-object py" id="flask.cli.NoAppException">
|
||
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">NoAppException</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ctx</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Context</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.cli.NoAppException" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">UsageError</span></code></p>
|
||
<p>Raised if an application cannot be found or loaded.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.cli.ScriptInfo">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">ScriptInfo</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app_import_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">create_app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">set_debug_flag</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">load_dotenv_defaults</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.cli.ScriptInfo" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<p>Helper object to deal with Flask applications. This is usually not
|
||
necessary to interface with as it’s used internally in the dispatching
|
||
to click. In future versions of Flask this object will most likely play
|
||
a bigger role. Typically it’s created automatically by the
|
||
<a class="reference internal" href="#flask.cli.FlaskGroup" title="flask.cli.FlaskGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">FlaskGroup</span></code></a> but you can also manually create it and pass it
|
||
onwards as click object.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.1: </span>Added the <code class="docutils literal notranslate"><span class="pre">load_dotenv_defaults</span></code> parameter and attribute.</p>
|
||
</div>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.cli.ScriptInfo.app_import_path">
|
||
<span class="sig-name descname"><span class="pre">app_import_path</span></span><a class="headerlink" href="#flask.cli.ScriptInfo.app_import_path" title="Link to this definition"></a></dt>
|
||
<dd><p>Optionally the import path for the Flask application.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.cli.ScriptInfo.create_app">
|
||
<span class="sig-name descname"><span class="pre">create_app</span></span><a class="headerlink" href="#flask.cli.ScriptInfo.create_app" title="Link to this definition"></a></dt>
|
||
<dd><p>Optionally a function that is passed the script info to create
|
||
the instance of the application.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.cli.ScriptInfo.data">
|
||
<span class="sig-name descname"><span class="pre">data</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">t.Any</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">t.Any</span><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#flask.cli.ScriptInfo.data" title="Link to this definition"></a></dt>
|
||
<dd><p>A dictionary with arbitrary data that can be associated with
|
||
this script info.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.cli.ScriptInfo.load_app">
|
||
<span class="sig-name descname"><span class="pre">load_app</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></span><a class="headerlink" href="#flask.cli.ScriptInfo.load_app" title="Link to this definition"></a></dt>
|
||
<dd><p>Loads the Flask app (if not yet loaded) and returns it. Calling
|
||
this multiple times will just result in the already loaded app to
|
||
be returned.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.cli.ScriptInfo.load_dotenv_defaults">
|
||
<span class="sig-name descname"><span class="pre">load_dotenv_defaults</span></span><a class="headerlink" href="#flask.cli.ScriptInfo.load_dotenv_defaults" title="Link to this definition"></a></dt>
|
||
<dd><p>Whether default <code class="docutils literal notranslate"><span class="pre">.flaskenv</span></code> and <code class="docutils literal notranslate"><span class="pre">.env</span></code> files should be loaded.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">ScriptInfo</span></code> doesn’t load anything, this is for reference when doing
|
||
the load elsewhere during processing.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.1.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.cli.SeparatedPathType">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">SeparatedPathType</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">exists</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">file_okay</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dir_okay</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">writable</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">readable</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resolve_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allow_dash</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Type</span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">executable</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.cli.SeparatedPathType" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Path</span></code></p>
|
||
<p>Click option type that accepts a list of values separated by the
|
||
OS’s path separator (<code class="docutils literal notranslate"><span class="pre">:</span></code>, <code class="docutils literal notranslate"><span class="pre">;</span></code> on Windows). Each value is
|
||
validated as a <code class="xref py py-class docutils literal notranslate"><span class="pre">click.Path</span></code> type.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.cli.SeparatedPathType.convert">
|
||
<span class="sig-name descname"><span class="pre">convert</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">param</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Parameter</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ctx</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Context</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Any</span></span></span><a class="headerlink" href="#flask.cli.SeparatedPathType.convert" title="Link to this definition"></a></dt>
|
||
<dd><p>Convert the value to the correct type. This is not called if
|
||
the value is <code class="docutils literal notranslate"><span class="pre">None</span></code> (the missing value).</p>
|
||
<p>This must accept string values from the command line, as well as
|
||
values that are already the correct type. It may also convert
|
||
other compatible types.</p>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">param</span></code> and <code class="docutils literal notranslate"><span class="pre">ctx</span></code> arguments may be <code class="docutils literal notranslate"><span class="pre">None</span></code> in certain
|
||
situations, such as when converting prompt input.</p>
|
||
<p>If the value cannot be converted, call <code class="xref py py-meth docutils literal notranslate"><span class="pre">fail()</span></code> with a
|
||
descriptive message.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>value</strong> – The value to convert.</p></li>
|
||
<li><p><strong>param</strong> – The parameter that is using this type to convert
|
||
its value. May be <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
|
||
<li><p><strong>ctx</strong> – The current context that arrived at this value. May
|
||
be <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.cli.find_app_by_string">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">find_app_by_string</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">module</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ModuleType</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">app_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></span><a class="headerlink" href="#flask.cli.find_app_by_string" title="Link to this definition"></a></dt>
|
||
<dd><p>Check if the given string is a variable name or a function. Call
|
||
a function to get the app instance, or return the variable directly.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.cli.find_best_app">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">find_best_app</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">module</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ModuleType</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></span><a class="headerlink" href="#flask.cli.find_best_app" title="Link to this definition"></a></dt>
|
||
<dd><p>Given a module instance this tries to find the best possible
|
||
application in the module or raises an exception.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.cli.get_version">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">get_version</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ctx</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Context</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">param</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Parameter</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.cli.get_version" title="Link to this definition"></a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.cli.load_dotenv">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">load_dotenv</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">PathLike</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">load_defaults</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.cli.load_dotenv" title="Link to this definition"></a></dt>
|
||
<dd><p>Load “dotenv” files to set environment variables. A given path takes
|
||
precedence over <code class="docutils literal notranslate"><span class="pre">.env</span></code>, which takes precedence over <code class="docutils literal notranslate"><span class="pre">.flaskenv</span></code>. After
|
||
loading and combining these files, values are only set if the key is not
|
||
already set in <code class="docutils literal notranslate"><span class="pre">os.environ</span></code>.</p>
|
||
<p>This is a no-op if <a class="reference external" href="https://github.com/theskumar/python-dotenv#readme">python-dotenv</a> is not installed.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>path</strong> – Load the file at this location.</p></li>
|
||
<li><p><strong>load_defaults</strong> – Search for and load the default <code class="docutils literal notranslate"><span class="pre">.flaskenv</span></code> and
|
||
<code class="docutils literal notranslate"><span class="pre">.env</span></code> files.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">True</span></code> if at least one env var was loaded.</p>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.1: </span>Added the <code class="docutils literal notranslate"><span class="pre">load_defaults</span></code> parameter. A given path takes precedence
|
||
over default files.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.0: </span>The current directory is not changed to the location of the
|
||
loaded file.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.0: </span>When loading the env files, set the default encoding to UTF-8.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.1.0: </span>Returns <code class="docutils literal notranslate"><span class="pre">False</span></code> when python-dotenv is not installed, or when
|
||
the given path isn’t a file.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 1.0.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.cli.locate_app">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">locate_app</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">module_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">app_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_if_not_found</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="k"><span class="pre">True</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></span><a class="headerlink" href="#flask.cli.locate_app" title="Link to this definition"></a></dt>
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">locate_app</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">module_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">app_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_if_not_found</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="k"><span class="pre">False</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.cli.main">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">main</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.cli.main" title="Link to this definition"></a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.cli.prepare_import">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">prepare_import</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#flask.cli.prepare_import" title="Link to this definition"></a></dt>
|
||
<dd><p>Given a filename this will try to calculate the python path, add it
|
||
to the search path and return the actual module name that is expected.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.cli.show_server_banner">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">show_server_banner</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">debug</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">app_import_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.cli.show_server_banner" title="Link to this definition"></a></dt>
|
||
<dd><p>Show extra startup messages the first time the server is run,
|
||
ignoring the reloader.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.cli.with_appcontext">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.cli.</span></span><span class="sig-name descname"><span class="pre">with_appcontext</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">f</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">F</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">F</span></span></span><a class="headerlink" href="#flask.cli.with_appcontext" title="Link to this definition"></a></dt>
|
||
<dd><p>Wraps a callback so that it’s guaranteed to be executed with the
|
||
script’s application context.</p>
|
||
<p>Custom commands (and their options) registered under <code class="docutils literal notranslate"><span class="pre">app.cli</span></code> or
|
||
<code class="docutils literal notranslate"><span class="pre">blueprint.cli</span></code> will always have an app context available, this
|
||
decorator is not required in that case.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.2: </span>The app context is active for subcommands as well as the
|
||
decorated callback. The app context is always available to
|
||
<code class="docutils literal notranslate"><span class="pre">app.cli</span></code> command and parameter callbacks.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-flask.config">
|
||
<span id="flask-config-module"></span><h2>flask.config module<a class="headerlink" href="#module-flask.config" title="Link to this heading"></a></h2>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.config.Config">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.config.</span></span><span class="sig-name descname"><span class="pre">Config</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">root_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">PathLike</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">defaults</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.config.Config" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
|
||
<p>Works exactly like a dict but provides ways to fill it from files
|
||
or special dictionaries. There are two common patterns to populate the
|
||
config.</p>
|
||
<p>Either you can fill the config from a config file:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">from_pyfile</span><span class="p">(</span><span class="s1">'yourconfig.cfg'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Or alternatively you can define the configuration options in the
|
||
module that calls <a class="reference internal" href="#flask.config.Config.from_object" title="flask.config.Config.from_object"><code class="xref py py-meth docutils literal notranslate"><span class="pre">from_object()</span></code></a> or provide an import path to
|
||
a module that should be loaded. It is also possible to tell it to
|
||
use the same module and with that provide the configuration values
|
||
just before the call:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">DEBUG</span> <span class="o">=</span> <span class="kc">True</span>
|
||
<span class="n">SECRET_KEY</span> <span class="o">=</span> <span class="s1">'development key'</span>
|
||
<span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">from_object</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>In both cases (loading from any Python file or loading from modules),
|
||
only uppercase keys are added to the config. This makes it possible to use
|
||
lowercase values in the config file for temporary values that are not added
|
||
to the config or to define the config keys in the same file that implements
|
||
the application.</p>
|
||
<p>Probably the most interesting way to load configurations is from an
|
||
environment variable pointing to a file:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">from_envvar</span><span class="p">(</span><span class="s1">'YOURAPPLICATION_SETTINGS'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>In this case before launching the application you have to set this
|
||
environment variable to the file you want to use. On Linux and OS X
|
||
use the export statement:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">export</span> <span class="n">YOURAPPLICATION_SETTINGS</span><span class="o">=</span><span class="s1">'/path/to/config/file'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>On windows use <cite>set</cite> instead.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>root_path</strong> – path to which files are read relative from. When the
|
||
config object is created by the application, this is
|
||
the application’s <code class="xref py py-attr docutils literal notranslate"><span class="pre">root_path</span></code>.</p></li>
|
||
<li><p><strong>defaults</strong> – an optional dictionary of default values</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.config.Config.from_envvar">
|
||
<span class="sig-name descname"><span class="pre">from_envvar</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">variable_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">silent</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.config.Config.from_envvar" title="Link to this definition"></a></dt>
|
||
<dd><p>Loads a configuration from an environment variable pointing to
|
||
a configuration file. This is basically just a shortcut with nicer
|
||
error messages for this line of code:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">from_pyfile</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">'YOURAPPLICATION_SETTINGS'</span><span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>variable_name</strong> – name of the environment variable</p></li>
|
||
<li><p><strong>silent</strong> – set to <code class="docutils literal notranslate"><span class="pre">True</span></code> if you want silent failure for missing
|
||
files.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">True</span></code> if the file was loaded successfully.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.config.Config.from_file">
|
||
<span class="sig-name descname"><span class="pre">from_file</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">PathLike</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">load</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">IO</span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Mapping</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">silent</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.config.Config.from_file" title="Link to this definition"></a></dt>
|
||
<dd><p>Update the values in the config from a file that is loaded
|
||
using the <code class="docutils literal notranslate"><span class="pre">load</span></code> parameter. The loaded data is passed to the
|
||
<a class="reference internal" href="#flask.config.Config.from_mapping" title="flask.config.Config.from_mapping"><code class="xref py py-meth docutils literal notranslate"><span class="pre">from_mapping()</span></code></a> method.</p>
|
||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">json</span>
|
||
<span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">from_file</span><span class="p">(</span><span class="s2">"config.json"</span><span class="p">,</span> <span class="n">load</span><span class="o">=</span><span class="n">json</span><span class="o">.</span><span class="n">load</span><span class="p">)</span>
|
||
|
||
<span class="kn">import</span><span class="w"> </span><span class="nn">tomllib</span>
|
||
<span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">from_file</span><span class="p">(</span><span class="s2">"config.toml"</span><span class="p">,</span> <span class="n">load</span><span class="o">=</span><span class="n">tomllib</span><span class="o">.</span><span class="n">load</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>filename</strong> – The path to the data file. This can be an
|
||
absolute path or relative to the config root path.</p></li>
|
||
<li><p><strong>load</strong> (<code class="docutils literal notranslate"><span class="pre">Callable[[Reader],</span> <span class="pre">Mapping]</span></code> where <code class="docutils literal notranslate"><span class="pre">Reader</span></code>
|
||
implements a <code class="docutils literal notranslate"><span class="pre">read</span></code> method.) – A callable that takes a file handle and returns a
|
||
mapping of loaded data from the file.</p></li>
|
||
<li><p><strong>silent</strong> – Ignore the file if it doesn’t exist.</p></li>
|
||
<li><p><strong>text</strong> – Open the file in text or binary mode.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">True</span></code> if the file was loaded successfully.</p>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.3: </span>The <code class="docutils literal notranslate"><span class="pre">text</span></code> parameter was added.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 2.0.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.config.Config.from_mapping">
|
||
<span class="sig-name descname"><span class="pre">from_mapping</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mapping</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Mapping</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.config.Config.from_mapping" title="Link to this definition"></a></dt>
|
||
<dd><p>Updates the config like <code class="xref py py-meth docutils literal notranslate"><span class="pre">update()</span></code> ignoring items with
|
||
non-upper keys.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>Always returns <code class="docutils literal notranslate"><span class="pre">True</span></code>.</p>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.11.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.config.Config.from_object">
|
||
<span class="sig-name descname"><span class="pre">from_object</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">object</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.config.Config.from_object" title="Link to this definition"></a></dt>
|
||
<dd><p>Updates the values from the given object. An object can be of one
|
||
of the following two types:</p>
|
||
<ul class="simple">
|
||
<li><p>a string: in this case the object with that name will be imported</p></li>
|
||
<li><p>an actual object reference: that object is used directly</p></li>
|
||
</ul>
|
||
<p>Objects are usually either modules or classes. <a class="reference internal" href="#flask.config.Config.from_object" title="flask.config.Config.from_object"><code class="xref py py-meth docutils literal notranslate"><span class="pre">from_object()</span></code></a>
|
||
loads only the uppercase attributes of the module/class. A <code class="docutils literal notranslate"><span class="pre">dict</span></code>
|
||
object will not work with <a class="reference internal" href="#flask.config.Config.from_object" title="flask.config.Config.from_object"><code class="xref py py-meth docutils literal notranslate"><span class="pre">from_object()</span></code></a> because the keys of a
|
||
<code class="docutils literal notranslate"><span class="pre">dict</span></code> are not attributes of the <code class="docutils literal notranslate"><span class="pre">dict</span></code> class.</p>
|
||
<p>Example of module-based configuration:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">from_object</span><span class="p">(</span><span class="s1">'yourapplication.default_config'</span><span class="p">)</span>
|
||
<span class="kn">from</span><span class="w"> </span><span class="nn">yourapplication</span><span class="w"> </span><span class="kn">import</span> <span class="n">default_config</span>
|
||
<span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">from_object</span><span class="p">(</span><span class="n">default_config</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Nothing is done to the object before loading. If the object is a
|
||
class and has <code class="docutils literal notranslate"><span class="pre">@property</span></code> attributes, it needs to be
|
||
instantiated before being passed to this method.</p>
|
||
<p>You should not use this function to load the actual configuration but
|
||
rather configuration defaults. The actual config should be loaded
|
||
with <a class="reference internal" href="#flask.config.Config.from_pyfile" title="flask.config.Config.from_pyfile"><code class="xref py py-meth docutils literal notranslate"><span class="pre">from_pyfile()</span></code></a> and ideally from a location not within the
|
||
package because the package might be installed system wide.</p>
|
||
<p>See <span class="xref std std-ref">config-dev-prod</span> for an example of class-based configuration
|
||
using <a class="reference internal" href="#flask.config.Config.from_object" title="flask.config.Config.from_object"><code class="xref py py-meth docutils literal notranslate"><span class="pre">from_object()</span></code></a>.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>obj</strong> – an import name or object</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.config.Config.from_prefixed_env">
|
||
<span class="sig-name descname"><span class="pre">from_prefixed_env</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">prefix:</span> <span class="pre">str</span> <span class="pre">=</span> <span class="pre">'FLASK',</span> <span class="pre">*,</span> <span class="pre">loads:</span> <span class="pre">~typing.Callable[[str],</span> <span class="pre">~typing.Any]</span> <span class="pre">=</span> <span class="pre"><function</span> <span class="pre">loads></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.config.Config.from_prefixed_env" title="Link to this definition"></a></dt>
|
||
<dd><p>Load any environment variables that start with <code class="docutils literal notranslate"><span class="pre">FLASK_</span></code>,
|
||
dropping the prefix from the env key for the config key. Values
|
||
are passed through a loading function to attempt to convert them
|
||
to more specific types than strings.</p>
|
||
<p>Keys are loaded in <code class="xref py py-func docutils literal notranslate"><span class="pre">sorted()</span></code> order.</p>
|
||
<p>The default loading function attempts to parse values as any
|
||
valid JSON type, including dicts and lists.</p>
|
||
<p>Specific items in nested dicts can be set by separating the
|
||
keys with double underscores (<code class="docutils literal notranslate"><span class="pre">__</span></code>). If an intermediate key
|
||
doesn’t exist, it will be initialized to an empty dict.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>prefix</strong> – Load env vars that start with this prefix,
|
||
separated with an underscore (<code class="docutils literal notranslate"><span class="pre">_</span></code>).</p></li>
|
||
<li><p><strong>loads</strong> – Pass each string value to this function and use
|
||
the returned value as the config value. If any error is
|
||
raised it is ignored and the value remains a string. The
|
||
default is <code class="xref py py-func docutils literal notranslate"><span class="pre">json.loads()</span></code>.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 2.1.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.config.Config.from_pyfile">
|
||
<span class="sig-name descname"><span class="pre">from_pyfile</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">PathLike</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">silent</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.config.Config.from_pyfile" title="Link to this definition"></a></dt>
|
||
<dd><p>Updates the values in the config from a Python file. This function
|
||
behaves as if the file was imported as module with the
|
||
<a class="reference internal" href="#flask.config.Config.from_object" title="flask.config.Config.from_object"><code class="xref py py-meth docutils literal notranslate"><span class="pre">from_object()</span></code></a> function.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>filename</strong> – the filename of the config. This can either be an
|
||
absolute filename or a filename relative to the
|
||
root path.</p></li>
|
||
<li><p><strong>silent</strong> – set to <code class="docutils literal notranslate"><span class="pre">True</span></code> if you want silent failure for missing
|
||
files.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">True</span></code> if the file was loaded successfully.</p>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.7: </span><cite>silent</cite> parameter.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.config.Config.get_namespace">
|
||
<span class="sig-name descname"><span class="pre">get_namespace</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">namespace</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lowercase</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">trim_namespace</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.config.Config.get_namespace" title="Link to this definition"></a></dt>
|
||
<dd><p>Returns a dictionary containing a subset of configuration options
|
||
that match the specified namespace/prefix. Example usage:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'IMAGE_STORE_TYPE'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'fs'</span>
|
||
<span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'IMAGE_STORE_PATH'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'/var/app/images'</span>
|
||
<span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'IMAGE_STORE_BASE_URL'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'http://img.website.com'</span>
|
||
<span class="n">image_store_config</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get_namespace</span><span class="p">(</span><span class="s1">'IMAGE_STORE_'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The resulting dictionary <cite>image_store_config</cite> would look like:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
|
||
<span class="s1">'type'</span><span class="p">:</span> <span class="s1">'fs'</span><span class="p">,</span>
|
||
<span class="s1">'path'</span><span class="p">:</span> <span class="s1">'/var/app/images'</span><span class="p">,</span>
|
||
<span class="s1">'base_url'</span><span class="p">:</span> <span class="s1">'http://img.website.com'</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This is often useful when configuration options map directly to
|
||
keyword arguments in functions or class constructors.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>namespace</strong> – a configuration namespace</p></li>
|
||
<li><p><strong>lowercase</strong> – a flag indicating if the keys of the resulting
|
||
dictionary should be lowercase</p></li>
|
||
<li><p><strong>trim_namespace</strong> – a flag indicating if the keys of the resulting
|
||
dictionary should not include the namespace</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.11.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.config.ConfigAttribute">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.config.</span></span><span class="sig-name descname"><span class="pre">ConfigAttribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">get_converter</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">T</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.config.ConfigAttribute" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Generic</span></code>[<code class="xref py py-obj docutils literal notranslate"><span class="pre">T</span></code>]</p>
|
||
<p>Makes an attribute forward to the config</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-flask.ctx">
|
||
<span id="flask-ctx-module"></span><h2>flask.ctx module<a class="headerlink" href="#module-flask.ctx" title="Link to this heading"></a></h2>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.ctx.AppContext">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.ctx.</span></span><span class="sig-name descname"><span class="pre">AppContext</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.ctx.AppContext" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<p>The app context contains application-specific information. An app
|
||
context is created and pushed at the beginning of each request if
|
||
one is not already active. An app context is also pushed when
|
||
running CLI commands.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.ctx.AppContext.pop">
|
||
<span class="sig-name descname"><span class="pre">pop</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">exc:</span> <span class="pre">BaseException</span> <span class="pre">|</span> <span class="pre">None</span> <span class="pre">=</span> <span class="pre"><object</span> <span class="pre">object></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.ctx.AppContext.pop" title="Link to this definition"></a></dt>
|
||
<dd><p>Pops the app context.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.ctx.AppContext.push">
|
||
<span class="sig-name descname"><span class="pre">push</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.ctx.AppContext.push" title="Link to this definition"></a></dt>
|
||
<dd><p>Binds the app context to the current context.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.ctx.RequestContext">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.ctx.</span></span><span class="sig-name descname"><span class="pre">RequestContext</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">environ</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">WSGIEnvironment</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.wrappers.Request" title="flask.wrappers.Request"><span class="pre">Request</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">session</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.sessions.SessionMixin" title="flask.sessions.SessionMixin"><span class="pre">SessionMixin</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.ctx.RequestContext" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<p>The request context contains per-request information. The Flask
|
||
app creates and pushes it at the beginning of the request, then pops
|
||
it at the end of the request. It will create the URL adapter and
|
||
request object for the WSGI environment provided.</p>
|
||
<p>Do not attempt to use this class directly, instead use
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">test_request_context()</span></code> and
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">request_context()</span></code> to create this object.</p>
|
||
<p>When the request context is popped, it will evaluate all the
|
||
functions registered on the application for teardown execution
|
||
(<code class="xref py py-meth docutils literal notranslate"><span class="pre">teardown_request()</span></code>).</p>
|
||
<p>The request context is automatically popped at the end of the
|
||
request. When using the interactive debugger, the context will be
|
||
restored so <code class="docutils literal notranslate"><span class="pre">request</span></code> is still accessible. Similarly, the test
|
||
client can preserve the context after the request ends. However,
|
||
teardown functions may already have closed some resources such as
|
||
database connections.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.ctx.RequestContext.copy">
|
||
<span class="sig-name descname"><span class="pre">copy</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.ctx.RequestContext" title="flask.ctx.RequestContext"><span class="pre">RequestContext</span></a></span></span><a class="headerlink" href="#flask.ctx.RequestContext.copy" title="Link to this definition"></a></dt>
|
||
<dd><p>Creates a copy of this request context with the same request object.
|
||
This can be used to move a request context to a different greenlet.
|
||
Because the actual request object is the same this cannot be used to
|
||
move a request context to a different thread unless access to the
|
||
request object is locked.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.10.</span></p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.1: </span>The current session object is used instead of reloading the original
|
||
data. This prevents <cite>flask.session</cite> pointing to an out-of-date object.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.ctx.RequestContext.match_request">
|
||
<span class="sig-name descname"><span class="pre">match_request</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.ctx.RequestContext.match_request" title="Link to this definition"></a></dt>
|
||
<dd><p>Can be overridden by a subclass to hook into the matching
|
||
of the request.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.ctx.RequestContext.pop">
|
||
<span class="sig-name descname"><span class="pre">pop</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">exc:</span> <span class="pre">BaseException</span> <span class="pre">|</span> <span class="pre">None</span> <span class="pre">=</span> <span class="pre"><object</span> <span class="pre">object></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.ctx.RequestContext.pop" title="Link to this definition"></a></dt>
|
||
<dd><p>Pops the request context and unbinds it by doing that. This will
|
||
also trigger the execution of functions registered by the
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">teardown_request()</span></code> decorator.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.9: </span>Added the <cite>exc</cite> argument.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.ctx.RequestContext.push">
|
||
<span class="sig-name descname"><span class="pre">push</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.ctx.RequestContext.push" title="Link to this definition"></a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.ctx.after_this_request">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.ctx.</span></span><span class="sig-name descname"><span class="pre">after_this_request</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">f</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Awaitable</span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Awaitable</span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.ctx.after_this_request" title="Link to this definition"></a></dt>
|
||
<dd><p>Executes a function after this request. This is useful to modify
|
||
response objects. The function is passed the response object and has
|
||
to return the same or a new one.</p>
|
||
<p>Example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nd">@app</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s1">'/'</span><span class="p">)</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">index</span><span class="p">():</span>
|
||
<span class="nd">@after_this_request</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">add_header</span><span class="p">(</span><span class="n">response</span><span class="p">):</span>
|
||
<span class="n">response</span><span class="o">.</span><span class="n">headers</span><span class="p">[</span><span class="s1">'X-Foo'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Parachute'</span>
|
||
<span class="k">return</span> <span class="n">response</span>
|
||
<span class="k">return</span> <span class="s1">'Hello World!'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This is more useful if a function other than the view function wants to
|
||
modify a response. For instance think of a decorator that wants to add
|
||
some headers without converting the return value into a response object.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.9.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.ctx.copy_current_request_context">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.ctx.</span></span><span class="sig-name descname"><span class="pre">copy_current_request_context</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">f</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">F</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">F</span></span></span><a class="headerlink" href="#flask.ctx.copy_current_request_context" title="Link to this definition"></a></dt>
|
||
<dd><p>A helper function that decorates a function to retain the current
|
||
request context. This is useful when working with greenlets. The moment
|
||
the function is decorated a copy of the request context is created and
|
||
then pushed when the function is called. The current session is also
|
||
included in the copied request context.</p>
|
||
<p>Example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">gevent</span>
|
||
<span class="kn">from</span><span class="w"> </span><span class="nn">flask</span><span class="w"> </span><span class="kn">import</span> <span class="n">copy_current_request_context</span>
|
||
|
||
<span class="nd">@app</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s1">'/'</span><span class="p">)</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">index</span><span class="p">():</span>
|
||
<span class="nd">@copy_current_request_context</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">do_some_work</span><span class="p">():</span>
|
||
<span class="c1"># do some work here, it can access flask.request or</span>
|
||
<span class="c1"># flask.session like you would otherwise in the view function.</span>
|
||
<span class="o">...</span>
|
||
<span class="n">gevent</span><span class="o">.</span><span class="n">spawn</span><span class="p">(</span><span class="n">do_some_work</span><span class="p">)</span>
|
||
<span class="k">return</span> <span class="s1">'Regular response'</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.10.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.ctx.has_app_context">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.ctx.</span></span><span class="sig-name descname"><span class="pre">has_app_context</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.ctx.has_app_context" title="Link to this definition"></a></dt>
|
||
<dd><p>Works like <a class="reference internal" href="#flask.ctx.has_request_context" title="flask.ctx.has_request_context"><code class="xref py py-func docutils literal notranslate"><span class="pre">has_request_context()</span></code></a> but for the application
|
||
context. You can also just do a boolean check on the
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">current_app</span></code> object instead.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.9.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.ctx.has_request_context">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.ctx.</span></span><span class="sig-name descname"><span class="pre">has_request_context</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.ctx.has_request_context" title="Link to this definition"></a></dt>
|
||
<dd><p>If you have code that wants to test if a request context is there or
|
||
not this function can be used. For instance, you may want to take advantage
|
||
of request information if the request object is available, but fail
|
||
silently if it is unavailable.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">User</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span>
|
||
|
||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">username</span><span class="p">,</span> <span class="n">remote_addr</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">username</span> <span class="o">=</span> <span class="n">username</span>
|
||
<span class="k">if</span> <span class="n">remote_addr</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">has_request_context</span><span class="p">():</span>
|
||
<span class="n">remote_addr</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">remote_addr</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">remote_addr</span> <span class="o">=</span> <span class="n">remote_addr</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Alternatively you can also just test any of the context bound objects
|
||
(such as <code class="xref py py-class docutils literal notranslate"><span class="pre">request</span></code> or <code class="xref py py-class docutils literal notranslate"><span class="pre">g</span></code>) for truthness:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">User</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span>
|
||
|
||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">username</span><span class="p">,</span> <span class="n">remote_addr</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">username</span> <span class="o">=</span> <span class="n">username</span>
|
||
<span class="k">if</span> <span class="n">remote_addr</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">request</span><span class="p">:</span>
|
||
<span class="n">remote_addr</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">remote_addr</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">remote_addr</span> <span class="o">=</span> <span class="n">remote_addr</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.7.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-flask.debughelpers">
|
||
<span id="flask-debughelpers-module"></span><h2>flask.debughelpers module<a class="headerlink" href="#module-flask.debughelpers" title="Link to this heading"></a></h2>
|
||
<dl class="py exception">
|
||
<dt class="sig sig-object py" id="flask.debughelpers.DebugFilesKeyError">
|
||
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.debughelpers.</span></span><span class="sig-name descname"><span class="pre">DebugFilesKeyError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.wrappers.Request" title="flask.wrappers.Request"><span class="pre">Request</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.debughelpers.DebugFilesKeyError" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">KeyError</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">AssertionError</span></code></p>
|
||
<p>Raised from request.files during debugging. The idea is that it can
|
||
provide a better error message than just a generic KeyError/BadRequest.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py exception">
|
||
<dt class="sig sig-object py" id="flask.debughelpers.FormDataRoutingRedirect">
|
||
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.debughelpers.</span></span><span class="sig-name descname"><span class="pre">FormDataRoutingRedirect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.wrappers.Request" title="flask.wrappers.Request"><span class="pre">Request</span></a></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.debughelpers.FormDataRoutingRedirect" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">AssertionError</span></code></p>
|
||
<p>This exception is raised in debug mode if a routing redirect
|
||
would cause the browser to drop the method or body. This happens
|
||
when method is not GET, HEAD or OPTIONS and the status code is not
|
||
307 or 308.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py exception">
|
||
<dt class="sig sig-object py" id="flask.debughelpers.UnexpectedUnicodeError">
|
||
<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.debughelpers.</span></span><span class="sig-name descname"><span class="pre">UnexpectedUnicodeError</span></span><a class="headerlink" href="#flask.debughelpers.UnexpectedUnicodeError" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">AssertionError</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">UnicodeError</span></code></p>
|
||
<p>Raised in places where we want some better error reporting for
|
||
unexpected unicode or binary data.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.debughelpers.explain_template_loading_attempts">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.debughelpers.</span></span><span class="sig-name descname"><span class="pre">explain_template_loading_attempts</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">App</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">template</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attempts</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">BaseLoader</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Scaffold</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">t.Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">bool</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.debughelpers.explain_template_loading_attempts" title="Link to this definition"></a></dt>
|
||
<dd><p>This should help developers understand what failed</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-flask.globals">
|
||
<span id="flask-globals-module"></span><h2>flask.globals module<a class="headerlink" href="#module-flask.globals" title="Link to this heading"></a></h2>
|
||
</section>
|
||
<section id="module-flask.helpers">
|
||
<span id="flask-helpers-module"></span><h2>flask.helpers module<a class="headerlink" href="#module-flask.helpers" title="Link to this heading"></a></h2>
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.helpers.abort">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.helpers.</span></span><span class="sig-name descname"><span class="pre">abort</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">code</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Response</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">NoReturn</span></span></span><a class="headerlink" href="#flask.helpers.abort" title="Link to this definition"></a></dt>
|
||
<dd><p>Raise an <code class="xref py py-exc docutils literal notranslate"><span class="pre">HTTPException</span></code> for the given
|
||
status code.</p>
|
||
<p>If <code class="xref py py-data docutils literal notranslate"><span class="pre">current_app</span></code> is available, it will call its
|
||
<code class="xref py py-attr docutils literal notranslate"><span class="pre">aborter</span></code> object, otherwise it will use
|
||
<code class="xref py py-func docutils literal notranslate"><span class="pre">werkzeug.exceptions.abort()</span></code>.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>code</strong> – The status code for the exception, which must be
|
||
registered in <code class="docutils literal notranslate"><span class="pre">app.aborter</span></code>.</p></li>
|
||
<li><p><strong>args</strong> – Passed to the exception.</p></li>
|
||
<li><p><strong>kwargs</strong> – Passed to the exception.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 2.2: </span>Calls <code class="docutils literal notranslate"><span class="pre">current_app.aborter</span></code> if available instead of always
|
||
using Werkzeug’s default <code class="docutils literal notranslate"><span class="pre">abort</span></code>.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.helpers.flash">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.helpers.</span></span><span class="sig-name descname"><span class="pre">flash</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'message'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.helpers.flash" title="Link to this definition"></a></dt>
|
||
<dd><p>Flashes a message to the next request. In order to remove the
|
||
flashed message from the session and to display it to the user,
|
||
the template has to call <a class="reference internal" href="#flask.helpers.get_flashed_messages" title="flask.helpers.get_flashed_messages"><code class="xref py py-func docutils literal notranslate"><span class="pre">get_flashed_messages()</span></code></a>.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.3: </span><cite>category</cite> parameter added.</p>
|
||
</div>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>message</strong> – the message to be flashed.</p></li>
|
||
<li><p><strong>category</strong> – the category for the message. The following values
|
||
are recommended: <code class="docutils literal notranslate"><span class="pre">'message'</span></code> for any kind of message,
|
||
<code class="docutils literal notranslate"><span class="pre">'error'</span></code> for errors, <code class="docutils literal notranslate"><span class="pre">'info'</span></code> for information
|
||
messages and <code class="docutils literal notranslate"><span class="pre">'warning'</span></code> for warnings. However any
|
||
kind of string can be used as category.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.helpers.get_debug_flag">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.helpers.</span></span><span class="sig-name descname"><span class="pre">get_debug_flag</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.helpers.get_debug_flag" title="Link to this definition"></a></dt>
|
||
<dd><p>Get whether debug mode should be enabled for the app, indicated by the
|
||
<span class="target" id="index-1"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">FLASK_DEBUG</span></code> environment variable. The default is <code class="docutils literal notranslate"><span class="pre">False</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.helpers.get_flashed_messages">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.helpers.</span></span><span class="sig-name descname"><span class="pre">get_flashed_messages</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">with_categories</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category_filter</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Iterable</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">()</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.helpers.get_flashed_messages" title="Link to this definition"></a></dt>
|
||
<dd><p>Pulls all flashed messages from the session and returns them.
|
||
Further calls in the same request to the function will return
|
||
the same messages. By default just the messages are returned,
|
||
but when <cite>with_categories</cite> is set to <code class="docutils literal notranslate"><span class="pre">True</span></code>, the return value will
|
||
be a list of tuples in the form <code class="docutils literal notranslate"><span class="pre">(category,</span> <span class="pre">message)</span></code> instead.</p>
|
||
<p>Filter the flashed messages to one or more categories by providing those
|
||
categories in <cite>category_filter</cite>. This allows rendering categories in
|
||
separate html blocks. The <cite>with_categories</cite> and <cite>category_filter</cite>
|
||
arguments are distinct:</p>
|
||
<ul class="simple">
|
||
<li><p><cite>with_categories</cite> controls whether categories are returned with message
|
||
text (<code class="docutils literal notranslate"><span class="pre">True</span></code> gives a tuple, where <code class="docutils literal notranslate"><span class="pre">False</span></code> gives just the message text).</p></li>
|
||
<li><p><cite>category_filter</cite> filters the messages down to only those matching the
|
||
provided categories.</p></li>
|
||
</ul>
|
||
<p>See <span class="xref std std-doc">/patterns/flashing</span> for examples.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.3: </span><cite>with_categories</cite> parameter added.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.9: </span><cite>category_filter</cite> parameter added.</p>
|
||
</div>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>with_categories</strong> – set to <code class="docutils literal notranslate"><span class="pre">True</span></code> to also receive categories.</p></li>
|
||
<li><p><strong>category_filter</strong> – filter of categories to limit return values. Only
|
||
categories in the list will be returned.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.helpers.get_load_dotenv">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.helpers.</span></span><span class="sig-name descname"><span class="pre">get_load_dotenv</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.helpers.get_load_dotenv" title="Link to this definition"></a></dt>
|
||
<dd><p>Get whether the user has disabled loading default dotenv files by
|
||
setting <span class="target" id="index-2"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">FLASK_SKIP_DOTENV</span></code>. The default is <code class="docutils literal notranslate"><span class="pre">True</span></code>, load
|
||
the files.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>default</strong> – What to return if the env var isn’t set.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.helpers.get_template_attribute">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.helpers.</span></span><span class="sig-name descname"><span class="pre">get_template_attribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">template_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attribute</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Any</span></span></span><a class="headerlink" href="#flask.helpers.get_template_attribute" title="Link to this definition"></a></dt>
|
||
<dd><p>Loads a macro (or variable) a template exports. This can be used to
|
||
invoke a macro from within Python code. If you for example have a
|
||
template named <code class="file docutils literal notranslate"><span class="pre">_cider.html</span></code> with the following contents:</p>
|
||
<div class="highlight-html+jinja notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">macro</span> <span class="nv">hello</span><span class="o">(</span><span class="nv">name</span><span class="o">)</span> <span class="cp">%}</span>Hello <span class="cp">{{</span> <span class="nv">name</span> <span class="cp">}}</span>!<span class="cp">{%</span> <span class="k">endmacro</span> <span class="cp">%}</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>You can access this from Python code like this:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">hello</span> <span class="o">=</span> <span class="n">get_template_attribute</span><span class="p">(</span><span class="s1">'_cider.html'</span><span class="p">,</span> <span class="s1">'hello'</span><span class="p">)</span>
|
||
<span class="k">return</span> <span class="n">hello</span><span class="p">(</span><span class="s1">'World'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.2.</span></p>
|
||
</div>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>template_name</strong> – the name of the template</p></li>
|
||
<li><p><strong>attribute</strong> – the name of the variable of macro to access</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.helpers.make_response">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.helpers.</span></span><span class="sig-name descname"><span class="pre">make_response</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></span><a class="headerlink" href="#flask.helpers.make_response" title="Link to this definition"></a></dt>
|
||
<dd><p>Sometimes it is necessary to set additional headers in a view. Because
|
||
views do not have to return response objects but can return a value that
|
||
is converted into a response object by Flask itself, it becomes tricky to
|
||
add headers to it. This function can be called instead of using a return
|
||
and you will get a response object which you can use to attach headers.</p>
|
||
<p>If view looked like this and you want to add a new header:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">index</span><span class="p">():</span>
|
||
<span class="k">return</span> <span class="n">render_template</span><span class="p">(</span><span class="s1">'index.html'</span><span class="p">,</span> <span class="n">foo</span><span class="o">=</span><span class="mi">42</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>You can now do something like this:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">index</span><span class="p">():</span>
|
||
<span class="n">response</span> <span class="o">=</span> <span class="n">make_response</span><span class="p">(</span><span class="n">render_template</span><span class="p">(</span><span class="s1">'index.html'</span><span class="p">,</span> <span class="n">foo</span><span class="o">=</span><span class="mi">42</span><span class="p">))</span>
|
||
<span class="n">response</span><span class="o">.</span><span class="n">headers</span><span class="p">[</span><span class="s1">'X-Parachutes'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'parachutes are cool'</span>
|
||
<span class="k">return</span> <span class="n">response</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This function accepts the very same arguments you can return from a
|
||
view function. This for example creates a response with a 404 error
|
||
code:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">response</span> <span class="o">=</span> <span class="n">make_response</span><span class="p">(</span><span class="n">render_template</span><span class="p">(</span><span class="s1">'not_found.html'</span><span class="p">),</span> <span class="mi">404</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The other use case of this function is to force the return value of a
|
||
view function into a response which is helpful with view
|
||
decorators:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">response</span> <span class="o">=</span> <span class="n">make_response</span><span class="p">(</span><span class="n">view_function</span><span class="p">())</span>
|
||
<span class="n">response</span><span class="o">.</span><span class="n">headers</span><span class="p">[</span><span class="s1">'X-Parachutes'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'parachutes are cool'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Internally this function does the following things:</p>
|
||
<ul class="simple">
|
||
<li><p>if no arguments are passed, it creates a new response argument</p></li>
|
||
<li><p>if one argument is passed, <code class="xref py py-meth docutils literal notranslate"><span class="pre">flask.Flask.make_response()</span></code>
|
||
is invoked with it.</p></li>
|
||
<li><p>if more than one argument is passed, the arguments are passed
|
||
to the <code class="xref py py-meth docutils literal notranslate"><span class="pre">flask.Flask.make_response()</span></code> function as tuple.</p></li>
|
||
</ul>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.6.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.helpers.redirect">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.helpers.</span></span><span class="sig-name descname"><span class="pre">redirect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">location</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">code</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">302</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Response</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">type</span><span class="p"><span class="pre">[</span></span><span class="pre">Response</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Response</span></span></span><a class="headerlink" href="#flask.helpers.redirect" title="Link to this definition"></a></dt>
|
||
<dd><p>Create a redirect response object.</p>
|
||
<p>If <code class="xref py py-data docutils literal notranslate"><span class="pre">current_app</span></code> is available, it will use its
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">redirect()</span></code> method, otherwise it will use
|
||
<code class="xref py py-func docutils literal notranslate"><span class="pre">werkzeug.utils.redirect()</span></code>.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>location</strong> – The URL to redirect to.</p></li>
|
||
<li><p><strong>code</strong> – The status code for the redirect.</p></li>
|
||
<li><p><strong>Response</strong> – The response class to use. Not used when
|
||
<code class="docutils literal notranslate"><span class="pre">current_app</span></code> is active, which uses <code class="docutils literal notranslate"><span class="pre">app.response_class</span></code>.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 2.2: </span>Calls <code class="docutils literal notranslate"><span class="pre">current_app.redirect</span></code> if available instead of always
|
||
using Werkzeug’s default <code class="docutils literal notranslate"><span class="pre">redirect</span></code>.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.helpers.send_file">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.helpers.</span></span><span class="sig-name descname"><span class="pre">send_file</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path_or_file</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">os.PathLike</span><span class="p"><span class="pre">[</span></span><span class="pre">t.AnyStr</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">t.BinaryIO</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mimetype</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">as_attachment</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">download_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">conditional</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">etag</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">last_modified</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">datetime</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">int</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_age</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">None</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">int</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">t.Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></span><a class="headerlink" href="#flask.helpers.send_file" title="Link to this definition"></a></dt>
|
||
<dd><p>Send the contents of a file to the client.</p>
|
||
<p>The first argument can be a file path or a file-like object. Paths
|
||
are preferred in most cases because Werkzeug can manage the file and
|
||
get extra information from the path. Passing a file-like object
|
||
requires that the file is opened in binary mode, and is mostly
|
||
useful when building a file in memory with <code class="xref py py-class docutils literal notranslate"><span class="pre">io.BytesIO</span></code>.</p>
|
||
<p>Never pass file paths provided by a user. The path is assumed to be
|
||
trusted, so a user could craft a path to access a file you didn’t
|
||
intend. Use <a class="reference internal" href="#flask.helpers.send_from_directory" title="flask.helpers.send_from_directory"><code class="xref py py-func docutils literal notranslate"><span class="pre">send_from_directory()</span></code></a> to safely serve
|
||
user-requested paths from within a directory.</p>
|
||
<p>If the WSGI server sets a <code class="docutils literal notranslate"><span class="pre">file_wrapper</span></code> in <code class="docutils literal notranslate"><span class="pre">environ</span></code>, it is
|
||
used, otherwise Werkzeug’s built-in wrapper is used. Alternatively,
|
||
if the HTTP server supports <code class="docutils literal notranslate"><span class="pre">X-Sendfile</span></code>, configuring Flask with
|
||
<code class="docutils literal notranslate"><span class="pre">USE_X_SENDFILE</span> <span class="pre">=</span> <span class="pre">True</span></code> will tell the server to send the given
|
||
path, which is much more efficient than reading it in Python.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>path_or_file</strong> – The path to the file to send, relative to the
|
||
current working directory if a relative path is given.
|
||
Alternatively, a file-like object opened in binary mode. Make
|
||
sure the file pointer is seeked to the start of the data.</p></li>
|
||
<li><p><strong>mimetype</strong> – The MIME type to send for the file. If not
|
||
provided, it will try to detect it from the file name.</p></li>
|
||
<li><p><strong>as_attachment</strong> – Indicate to a browser that it should offer to
|
||
save the file instead of displaying it.</p></li>
|
||
<li><p><strong>download_name</strong> – The default name browsers will use when saving
|
||
the file. Defaults to the passed file name.</p></li>
|
||
<li><p><strong>conditional</strong> – Enable conditional and range responses based on
|
||
request headers. Requires passing a file path and <code class="docutils literal notranslate"><span class="pre">environ</span></code>.</p></li>
|
||
<li><p><strong>etag</strong> – Calculate an ETag for the file, which requires passing
|
||
a file path. Can also be a string to use instead.</p></li>
|
||
<li><p><strong>last_modified</strong> – The last modified time to send for the file,
|
||
in seconds. If not provided, it will try to detect it from the
|
||
file path.</p></li>
|
||
<li><p><strong>max_age</strong> – How long the client should cache the file, in
|
||
seconds. If set, <code class="docutils literal notranslate"><span class="pre">Cache-Control</span></code> will be <code class="docutils literal notranslate"><span class="pre">public</span></code>, otherwise
|
||
it will be <code class="docutils literal notranslate"><span class="pre">no-cache</span></code> to prefer conditional caching.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.0: </span><code class="docutils literal notranslate"><span class="pre">download_name</span></code> replaces the <code class="docutils literal notranslate"><span class="pre">attachment_filename</span></code>
|
||
parameter. If <code class="docutils literal notranslate"><span class="pre">as_attachment=False</span></code>, it is passed with
|
||
<code class="docutils literal notranslate"><span class="pre">Content-Disposition:</span> <span class="pre">inline</span></code> instead.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.0: </span><code class="docutils literal notranslate"><span class="pre">max_age</span></code> replaces the <code class="docutils literal notranslate"><span class="pre">cache_timeout</span></code> parameter.
|
||
<code class="docutils literal notranslate"><span class="pre">conditional</span></code> is enabled and <code class="docutils literal notranslate"><span class="pre">max_age</span></code> is not set by
|
||
default.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.0: </span><code class="docutils literal notranslate"><span class="pre">etag</span></code> replaces the <code class="docutils literal notranslate"><span class="pre">add_etags</span></code> parameter. It can be a
|
||
string to use instead of generating one.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.0: </span>Passing a file-like object that inherits from
|
||
<code class="xref py py-class docutils literal notranslate"><span class="pre">TextIOBase</span></code> will raise a <code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code> rather
|
||
than sending an empty file.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 2.0: </span>Moved the implementation to Werkzeug. This is now a wrapper to
|
||
pass some Flask-specific arguments.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.1: </span><code class="docutils literal notranslate"><span class="pre">filename</span></code> may be a <code class="xref py py-class docutils literal notranslate"><span class="pre">PathLike</span></code> object.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.1: </span>Passing a <code class="xref py py-class docutils literal notranslate"><span class="pre">BytesIO</span></code> object supports range requests.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.0.3: </span>Filenames are encoded with ASCII instead of Latin-1 for broader
|
||
compatibility with WSGI servers.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.0: </span>UTF-8 filenames as specified in <span class="target" id="index-3"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2231.html"><strong>RFC 2231</strong></a> are supported.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.12: </span>The filename is no longer automatically inferred from file
|
||
objects. If you want to use automatic MIME and etag support,
|
||
pass a filename via <code class="docutils literal notranslate"><span class="pre">filename_or_fp</span></code> or
|
||
<code class="docutils literal notranslate"><span class="pre">attachment_filename</span></code>.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.12: </span><code class="docutils literal notranslate"><span class="pre">attachment_filename</span></code> is preferred over <code class="docutils literal notranslate"><span class="pre">filename</span></code> for MIME
|
||
detection.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.9: </span><code class="docutils literal notranslate"><span class="pre">cache_timeout</span></code> defaults to
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">Flask.get_send_file_max_age()</span></code>.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.7: </span>MIME guessing and etag support for file-like objects was
|
||
removed because it was unreliable. Pass a filename if you are
|
||
able to, otherwise attach an etag yourself.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.5: </span>The <code class="docutils literal notranslate"><span class="pre">add_etags</span></code>, <code class="docutils literal notranslate"><span class="pre">cache_timeout</span></code> and <code class="docutils literal notranslate"><span class="pre">conditional</span></code>
|
||
parameters were added. The default behavior is to add etags.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.helpers.send_from_directory">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.helpers.</span></span><span class="sig-name descname"><span class="pre">send_from_directory</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">directory</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">os.PathLike</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">os.PathLike</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></span><a class="headerlink" href="#flask.helpers.send_from_directory" title="Link to this definition"></a></dt>
|
||
<dd><p>Send a file from within a directory using <a class="reference internal" href="#flask.helpers.send_file" title="flask.helpers.send_file"><code class="xref py py-func docutils literal notranslate"><span class="pre">send_file()</span></code></a>.</p>
|
||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="nd">@app</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/uploads/<path:name>"</span><span class="p">)</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">download_file</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
|
||
<span class="k">return</span> <span class="n">send_from_directory</span><span class="p">(</span>
|
||
<span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'UPLOAD_FOLDER'</span><span class="p">],</span> <span class="n">name</span><span class="p">,</span> <span class="n">as_attachment</span><span class="o">=</span><span class="kc">True</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This is a secure way to serve files from a folder, such as static
|
||
files or uploads. Uses <code class="xref py py-func docutils literal notranslate"><span class="pre">safe_join()</span></code> to
|
||
ensure the path coming from the client is not maliciously crafted to
|
||
point outside the specified directory.</p>
|
||
<p>If the final path does not point to an existing regular file,
|
||
raises a 404 <code class="xref py py-exc docutils literal notranslate"><span class="pre">NotFound</span></code> error.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>directory</strong> – The directory that <code class="docutils literal notranslate"><span class="pre">path</span></code> must be located under,
|
||
relative to the current application’s root path. This <em>must not</em>
|
||
be a value provided by the client, otherwise it becomes insecure.</p></li>
|
||
<li><p><strong>path</strong> – The path to the file to send, relative to
|
||
<code class="docutils literal notranslate"><span class="pre">directory</span></code>.</p></li>
|
||
<li><p><strong>kwargs</strong> – Arguments to pass to <a class="reference internal" href="#flask.helpers.send_file" title="flask.helpers.send_file"><code class="xref py py-func docutils literal notranslate"><span class="pre">send_file()</span></code></a>.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.0: </span><code class="docutils literal notranslate"><span class="pre">path</span></code> replaces the <code class="docutils literal notranslate"><span class="pre">filename</span></code> parameter.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 2.0: </span>Moved the implementation to Werkzeug. This is now a wrapper to
|
||
pass some Flask-specific arguments.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.5.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.helpers.stream_with_context">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.helpers.</span></span><span class="sig-name descname"><span class="pre">stream_with_context</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">generator_or_function</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Iterator</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Iterator</span></span></span><a class="headerlink" href="#flask.helpers.stream_with_context" title="Link to this definition"></a></dt>
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.helpers.</span></span><span class="sig-name descname"><span class="pre">stream_with_context</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">generator_or_function</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Iterator</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">Iterator</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Iterator</span><span class="p"><span class="pre">]</span></span></span></span></dt>
|
||
<dd><p>Request contexts disappear when the response is started on the server.
|
||
This is done for efficiency reasons and to make it less likely to encounter
|
||
memory leaks with badly written WSGI middlewares. The downside is that if
|
||
you are using streamed responses, the generator cannot access request bound
|
||
information any more.</p>
|
||
<p>This function however can help you keep the context around for longer:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">flask</span><span class="w"> </span><span class="kn">import</span> <span class="n">stream_with_context</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">Response</span>
|
||
|
||
<span class="nd">@app</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s1">'/stream'</span><span class="p">)</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">streamed_response</span><span class="p">():</span>
|
||
<span class="nd">@stream_with_context</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">generate</span><span class="p">():</span>
|
||
<span class="k">yield</span> <span class="s1">'Hello '</span>
|
||
<span class="k">yield</span> <span class="n">request</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s1">'name'</span><span class="p">]</span>
|
||
<span class="k">yield</span> <span class="s1">'!'</span>
|
||
<span class="k">return</span> <span class="n">Response</span><span class="p">(</span><span class="n">generate</span><span class="p">())</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Alternatively it can also be used around a specific generator:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">flask</span><span class="w"> </span><span class="kn">import</span> <span class="n">stream_with_context</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">Response</span>
|
||
|
||
<span class="nd">@app</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s1">'/stream'</span><span class="p">)</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">streamed_response</span><span class="p">():</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">generate</span><span class="p">():</span>
|
||
<span class="k">yield</span> <span class="s1">'Hello '</span>
|
||
<span class="k">yield</span> <span class="n">request</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s1">'name'</span><span class="p">]</span>
|
||
<span class="k">yield</span> <span class="s1">'!'</span>
|
||
<span class="k">return</span> <span class="n">Response</span><span class="p">(</span><span class="n">stream_with_context</span><span class="p">(</span><span class="n">generate</span><span class="p">()))</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.9.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.helpers.url_for">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.helpers.</span></span><span class="sig-name descname"><span class="pre">url_for</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">endpoint</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_anchor</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_method</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_scheme</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_external</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">values</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#flask.helpers.url_for" title="Link to this definition"></a></dt>
|
||
<dd><p>Generate a URL to the given endpoint with the given values.</p>
|
||
<p>This requires an active request or application context, and calls
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">current_app.url_for()</span></code>. See that method
|
||
for full documentation.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>endpoint</strong> – The endpoint name associated with the URL to
|
||
generate. If this starts with a <code class="docutils literal notranslate"><span class="pre">.</span></code>, the current blueprint
|
||
name (if any) will be used.</p></li>
|
||
<li><p><strong>_anchor</strong> – If given, append this as <code class="docutils literal notranslate"><span class="pre">#anchor</span></code> to the URL.</p></li>
|
||
<li><p><strong>_method</strong> – If given, generate the URL associated with this
|
||
method for the endpoint.</p></li>
|
||
<li><p><strong>_scheme</strong> – If given, the URL will have this scheme if it is
|
||
external.</p></li>
|
||
<li><p><strong>_external</strong> – If given, prefer the URL to be internal (False) or
|
||
require it to be external (True). External URLs include the
|
||
scheme and domain. When not in an active request, URLs are
|
||
external by default.</p></li>
|
||
<li><p><strong>values</strong> – Values to use for the variable parts of the URL rule.
|
||
Unknown keys are appended as query string arguments, like
|
||
<code class="docutils literal notranslate"><span class="pre">?a=b&c=d</span></code>.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.2: </span>Calls <code class="docutils literal notranslate"><span class="pre">current_app.url_for</span></code>, allowing an app to override the
|
||
behavior.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.10: </span>The <code class="docutils literal notranslate"><span class="pre">_scheme</span></code> parameter was added.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.9: </span>The <code class="docutils literal notranslate"><span class="pre">_anchor</span></code> and <code class="docutils literal notranslate"><span class="pre">_method</span></code> parameters were added.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.9: </span>Calls <code class="docutils literal notranslate"><span class="pre">app.handle_url_build_error</span></code> on build errors.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-flask.logging">
|
||
<span id="flask-logging-module"></span><h2>flask.logging module<a class="headerlink" href="#module-flask.logging" title="Link to this heading"></a></h2>
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.logging.create_logger">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.logging.</span></span><span class="sig-name descname"><span class="pre">create_logger</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">App</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">logging.Logger</span></span></span><a class="headerlink" href="#flask.logging.create_logger" title="Link to this definition"></a></dt>
|
||
<dd><p>Get the Flask app’s logger and configure it if needed.</p>
|
||
<p>The logger name will be the same as
|
||
<code class="xref py py-attr docutils literal notranslate"><span class="pre">app.import_name</span></code>.</p>
|
||
<p>When <code class="xref py py-attr docutils literal notranslate"><span class="pre">debug</span></code> is enabled, set the logger level to
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">logging.DEBUG</span></code> if it is not set.</p>
|
||
<p>If there is no handler for the logger’s effective level, add a
|
||
<code class="xref py py-class docutils literal notranslate"><span class="pre">StreamHandler</span></code> for
|
||
<code class="xref py py-func docutils literal notranslate"><span class="pre">wsgi_errors_stream()</span></code> with a basic format.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py data">
|
||
<dt class="sig sig-object py" id="flask.logging.default_handler">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.logging.</span></span><span class="sig-name descname"><span class="pre">default_handler</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre"><StreamHandler</span> <span class="pre"><stderr></span> <span class="pre">(NOTSET)></span></em><a class="headerlink" href="#flask.logging.default_handler" title="Link to this definition"></a></dt>
|
||
<dd><p>Log messages to <code class="xref py py-func docutils literal notranslate"><span class="pre">wsgi_errors_stream()</span></code> with the format
|
||
<code class="docutils literal notranslate"><span class="pre">[%(asctime)s]</span> <span class="pre">%(levelname)s</span> <span class="pre">in</span> <span class="pre">%(module)s:</span> <span class="pre">%(message)s</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.logging.has_level_handler">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.logging.</span></span><span class="sig-name descname"><span class="pre">has_level_handler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">logger</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Logger</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.logging.has_level_handler" title="Link to this definition"></a></dt>
|
||
<dd><p>Check if there is a handler in the logging chain that will handle the
|
||
given logger’s <code class="xref py py-meth docutils literal notranslate"><span class="pre">effective</span> <span class="pre">level</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-flask.sessions">
|
||
<span id="flask-sessions-module"></span><h2>flask.sessions module<a class="headerlink" href="#module-flask.sessions" title="Link to this heading"></a></h2>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.sessions.NullSession">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.sessions.</span></span><span class="sig-name descname"><span class="pre">NullSession</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">initial</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Mapping</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Iterable</span><span class="p"><span class="pre">[</span></span><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.sessions.NullSession" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="#flask.sessions.SecureCookieSession" title="flask.sessions.SecureCookieSession"><code class="xref py py-class docutils literal notranslate"><span class="pre">SecureCookieSession</span></code></a></p>
|
||
<p>Class used to generate nicer error messages if sessions are not
|
||
available. Will still allow read-only access to the empty session
|
||
but fail on setting.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.NullSession.clear">
|
||
<span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None.</span>  <span class="pre">Remove</span> <span class="pre">all</span> <span class="pre">items</span> <span class="pre">from</span> <span class="pre">D.</span></span></span><a class="headerlink" href="#flask.sessions.NullSession.clear" title="Link to this definition"></a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.NullSession.pop">
|
||
<span class="sig-name descname"><span class="pre">pop</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">k</span></span></em><span class="optional">[</span>, <em class="sig-param"><span class="n"><span class="pre">d</span></span></em><span class="optional">]</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">v,</span> <span class="pre">remove</span> <span class="pre">specified</span> <span class="pre">key</span> <span class="pre">and</span> <span class="pre">return</span> <span class="pre">the</span> <span class="pre">corresponding</span> <span class="pre">value.</span></span></span><a class="headerlink" href="#flask.sessions.NullSession.pop" title="Link to this definition"></a></dt>
|
||
<dd><p>If the key is not found, return the default if given; otherwise,
|
||
raise a KeyError.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.NullSession.popitem">
|
||
<span class="sig-name descname"><span class="pre">popitem</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">NoReturn</span></span></span><a class="headerlink" href="#flask.sessions.NullSession.popitem" title="Link to this definition"></a></dt>
|
||
<dd><p>Remove and return a (key, value) pair as a 2-tuple.</p>
|
||
<p>Pairs are returned in LIFO (last-in, first-out) order.
|
||
Raises KeyError if the dict is empty.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.NullSession.setdefault">
|
||
<span class="sig-name descname"><span class="pre">setdefault</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">NoReturn</span></span></span><a class="headerlink" href="#flask.sessions.NullSession.setdefault" title="Link to this definition"></a></dt>
|
||
<dd><p>Insert key with a value of default if key is not in the dictionary.</p>
|
||
<p>Return the value for key if key is in the dictionary, else default.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.NullSession.update">
|
||
<span class="sig-name descname"><span class="pre">update</span></span><span class="sig-paren">(</span><span class="optional">[</span><em class="sig-param"><span class="n"><span class="pre">E</span></span></em>, <span class="optional">]</span><em class="sig-param"><span class="n"><span class="pre">**F</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None.</span>  <span class="pre">Update</span> <span class="pre">D</span> <span class="pre">from</span> <span class="pre">dict/iterable</span> <span class="pre">E</span> <span class="pre">and</span> <span class="pre">F.</span></span></span><a class="headerlink" href="#flask.sessions.NullSession.update" title="Link to this definition"></a></dt>
|
||
<dd><p>If E is present and has a .keys() method, then does: for k in E: D[k] = E[k]
|
||
If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v
|
||
In either case, this is followed by: for k in F: D[k] = F[k]</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSession">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.sessions.</span></span><span class="sig-name descname"><span class="pre">SecureCookieSession</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">initial</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Mapping</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Iterable</span><span class="p"><span class="pre">[</span></span><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.sessions.SecureCookieSession" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">CallbackDict</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>, <code class="xref py py-obj docutils literal notranslate"><span class="pre">Any</span></code>], <a class="reference internal" href="#flask.sessions.SessionMixin" title="flask.sessions.SessionMixin"><code class="xref py py-class docutils literal notranslate"><span class="pre">SessionMixin</span></code></a></p>
|
||
<p>Base class for sessions based on signed cookies.</p>
|
||
<p>This session backend will set the <a class="reference internal" href="#flask.sessions.SecureCookieSession.modified" title="flask.sessions.SecureCookieSession.modified"><code class="xref py py-attr docutils literal notranslate"><span class="pre">modified</span></code></a> and
|
||
<a class="reference internal" href="#flask.sessions.SecureCookieSession.accessed" title="flask.sessions.SecureCookieSession.accessed"><code class="xref py py-attr docutils literal notranslate"><span class="pre">accessed</span></code></a> attributes. It cannot reliably track whether a
|
||
session is new (vs. empty), so <code class="xref py py-attr docutils literal notranslate"><span class="pre">new</span></code> remains hard coded to
|
||
<code class="docutils literal notranslate"><span class="pre">False</span></code>.</p>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSession.accessed">
|
||
<span class="sig-name descname"><span class="pre">accessed</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#flask.sessions.SecureCookieSession.accessed" title="Link to this definition"></a></dt>
|
||
<dd><p>header, which allows caching proxies to cache different pages for
|
||
different users.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSession.get">
|
||
<span class="sig-name descname"><span class="pre">get</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Any</span></span></span><a class="headerlink" href="#flask.sessions.SecureCookieSession.get" title="Link to this definition"></a></dt>
|
||
<dd><p>Return the value for key if key is in the dictionary, else default.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSession.modified">
|
||
<span class="sig-name descname"><span class="pre">modified</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#flask.sessions.SecureCookieSession.modified" title="Link to this definition"></a></dt>
|
||
<dd><p>When data is changed, this is set to <code class="docutils literal notranslate"><span class="pre">True</span></code>. Only the session
|
||
dictionary itself is tracked; if the session contains mutable
|
||
data (for example a nested dict) then this must be set to
|
||
<code class="docutils literal notranslate"><span class="pre">True</span></code> manually when modifying that data. The session cookie
|
||
will only be written to the response if this is <code class="docutils literal notranslate"><span class="pre">True</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSession.setdefault">
|
||
<span class="sig-name descname"><span class="pre">setdefault</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Any</span></span></span><a class="headerlink" href="#flask.sessions.SecureCookieSession.setdefault" title="Link to this definition"></a></dt>
|
||
<dd><p>Insert key with a value of default if key is not in the dictionary.</p>
|
||
<p>Return the value for key if key is in the dictionary, else default.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSessionInterface">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.sessions.</span></span><span class="sig-name descname"><span class="pre">SecureCookieSessionInterface</span></span><a class="headerlink" href="#flask.sessions.SecureCookieSessionInterface" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="#flask.sessions.SessionInterface" title="flask.sessions.SessionInterface"><code class="xref py py-class docutils literal notranslate"><span class="pre">SessionInterface</span></code></a></p>
|
||
<p>The default session interface that stores sessions in signed cookies
|
||
through the <code class="xref py py-mod docutils literal notranslate"><span class="pre">itsdangerous</span></code> module.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSessionInterface.digest_method">
|
||
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">digest_method</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bytes</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">b''</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Any</span></span></span><a class="headerlink" href="#flask.sessions.SecureCookieSessionInterface.digest_method" title="Link to this definition"></a></dt>
|
||
<dd><p>the hash function to use for the signature. The default is sha1</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSessionInterface.get_signing_serializer">
|
||
<span class="sig-name descname"><span class="pre">get_signing_serializer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">URLSafeTimedSerializer</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#flask.sessions.SecureCookieSessionInterface.get_signing_serializer" title="Link to this definition"></a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSessionInterface.key_derivation">
|
||
<span class="sig-name descname"><span class="pre">key_derivation</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'hmac'</span></em><a class="headerlink" href="#flask.sessions.SecureCookieSessionInterface.key_derivation" title="Link to this definition"></a></dt>
|
||
<dd><p>the name of the itsdangerous supported key derivation. The default
|
||
is hmac.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSessionInterface.open_session">
|
||
<span class="sig-name descname"><span class="pre">open_session</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.wrappers.Request" title="flask.wrappers.Request"><span class="pre">Request</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.sessions.SecureCookieSession" title="flask.sessions.SecureCookieSession"><span class="pre">SecureCookieSession</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#flask.sessions.SecureCookieSessionInterface.open_session" title="Link to this definition"></a></dt>
|
||
<dd><p>This is called at the beginning of each request, after
|
||
pushing the request context, before matching the URL.</p>
|
||
<p>This must return an object which implements a dictionary-like
|
||
interface as well as the <a class="reference internal" href="#flask.sessions.SessionMixin" title="flask.sessions.SessionMixin"><code class="xref py py-class docutils literal notranslate"><span class="pre">SessionMixin</span></code></a> interface.</p>
|
||
<p>This will return <code class="docutils literal notranslate"><span class="pre">None</span></code> to indicate that loading failed in
|
||
some way that is not immediately an error. The request
|
||
context will fall back to using <code class="xref py py-meth docutils literal notranslate"><span class="pre">make_null_session()</span></code>
|
||
in this case.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSessionInterface.salt">
|
||
<span class="sig-name descname"><span class="pre">salt</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cookie-session'</span></em><a class="headerlink" href="#flask.sessions.SecureCookieSessionInterface.salt" title="Link to this definition"></a></dt>
|
||
<dd><p>the salt that should be applied on top of the secret key for the
|
||
signing of cookie based sessions.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSessionInterface.save_session">
|
||
<span class="sig-name descname"><span class="pre">save_session</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">session</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.sessions.SessionMixin" title="flask.sessions.SessionMixin"><span class="pre">SessionMixin</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">response</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.sessions.SecureCookieSessionInterface.save_session" title="Link to this definition"></a></dt>
|
||
<dd><p>This is called at the end of each request, after generating
|
||
a response, before removing the request context. It is skipped
|
||
if <code class="xref py py-meth docutils literal notranslate"><span class="pre">is_null_session()</span></code> returns <code class="docutils literal notranslate"><span class="pre">True</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSessionInterface.serializer">
|
||
<span class="sig-name descname"><span class="pre">serializer</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre"><flask.json.tag.TaggedJSONSerializer</span> <span class="pre">object></span></em><a class="headerlink" href="#flask.sessions.SecureCookieSessionInterface.serializer" title="Link to this definition"></a></dt>
|
||
<dd><p>A python serializer for the payload. The default is a compact
|
||
JSON derived serializer with support for some extra Python types
|
||
such as datetime objects or tuples.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.sessions.SecureCookieSessionInterface.session_class">
|
||
<span class="sig-name descname"><span class="pre">session_class</span></span><a class="headerlink" href="#flask.sessions.SecureCookieSessionInterface.session_class" title="Link to this definition"></a></dt>
|
||
<dd><p>alias of <a class="reference internal" href="#flask.sessions.SecureCookieSession" title="flask.sessions.SecureCookieSession"><code class="xref py py-class docutils literal notranslate"><span class="pre">SecureCookieSession</span></code></a></p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.sessions.</span></span><span class="sig-name descname"><span class="pre">SessionInterface</span></span><a class="headerlink" href="#flask.sessions.SessionInterface" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<p>The basic interface you have to implement in order to replace the
|
||
default session interface which uses werkzeug’s securecookie
|
||
implementation. The only methods you have to implement are
|
||
<a class="reference internal" href="#flask.sessions.SessionInterface.open_session" title="flask.sessions.SessionInterface.open_session"><code class="xref py py-meth docutils literal notranslate"><span class="pre">open_session()</span></code></a> and <a class="reference internal" href="#flask.sessions.SessionInterface.save_session" title="flask.sessions.SessionInterface.save_session"><code class="xref py py-meth docutils literal notranslate"><span class="pre">save_session()</span></code></a>, the others have
|
||
useful defaults which you don’t need to change.</p>
|
||
<p>The session object returned by the <a class="reference internal" href="#flask.sessions.SessionInterface.open_session" title="flask.sessions.SessionInterface.open_session"><code class="xref py py-meth docutils literal notranslate"><span class="pre">open_session()</span></code></a> method has to
|
||
provide a dictionary like interface plus the properties and methods
|
||
from the <a class="reference internal" href="#flask.sessions.SessionMixin" title="flask.sessions.SessionMixin"><code class="xref py py-class docutils literal notranslate"><span class="pre">SessionMixin</span></code></a>. We recommend just subclassing a dict
|
||
and adding that mixin:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Session</span><span class="p">(</span><span class="nb">dict</span><span class="p">,</span> <span class="n">SessionMixin</span><span class="p">):</span>
|
||
<span class="k">pass</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>If <a class="reference internal" href="#flask.sessions.SessionInterface.open_session" title="flask.sessions.SessionInterface.open_session"><code class="xref py py-meth docutils literal notranslate"><span class="pre">open_session()</span></code></a> returns <code class="docutils literal notranslate"><span class="pre">None</span></code> Flask will call into
|
||
<a class="reference internal" href="#flask.sessions.SessionInterface.make_null_session" title="flask.sessions.SessionInterface.make_null_session"><code class="xref py py-meth docutils literal notranslate"><span class="pre">make_null_session()</span></code></a> to create a session that acts as replacement
|
||
if the session support cannot work because some requirement is not
|
||
fulfilled. The default <a class="reference internal" href="#flask.sessions.NullSession" title="flask.sessions.NullSession"><code class="xref py py-class docutils literal notranslate"><span class="pre">NullSession</span></code></a> class that is created
|
||
will complain that the secret key was not set.</p>
|
||
<p>To replace the session interface on an application all you have to do
|
||
is to assign <code class="xref py py-attr docutils literal notranslate"><span class="pre">flask.Flask.session_interface</span></code>:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">app</span> <span class="o">=</span> <span class="n">Flask</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
|
||
<span class="n">app</span><span class="o">.</span><span class="n">session_interface</span> <span class="o">=</span> <span class="n">MySessionInterface</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Multiple requests with the same session may be sent and handled
|
||
concurrently. When implementing a new session interface, consider
|
||
whether reads or writes to the backing store must be synchronized.
|
||
There is no guarantee on the order in which the session for each
|
||
request is opened or saved, it will occur in the order that requests
|
||
begin and end processing.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.8.</span></p>
|
||
</div>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.get_cookie_domain">
|
||
<span class="sig-name descname"><span class="pre">get_cookie_domain</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#flask.sessions.SessionInterface.get_cookie_domain" title="Link to this definition"></a></dt>
|
||
<dd><p>The value of the <code class="docutils literal notranslate"><span class="pre">Domain</span></code> parameter on the session cookie. If not set,
|
||
browsers will only send the cookie to the exact domain it was set from.
|
||
Otherwise, they will send it to any subdomain of the given value as well.</p>
|
||
<p>Uses the <code class="xref py py-data docutils literal notranslate"><span class="pre">SESSION_COOKIE_DOMAIN</span></code> config.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.3: </span>Not set by default, does not fall back to <code class="docutils literal notranslate"><span class="pre">SERVER_NAME</span></code>.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.get_cookie_httponly">
|
||
<span class="sig-name descname"><span class="pre">get_cookie_httponly</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.sessions.SessionInterface.get_cookie_httponly" title="Link to this definition"></a></dt>
|
||
<dd><p>Returns True if the session cookie should be httponly. This
|
||
currently just returns the value of the <code class="docutils literal notranslate"><span class="pre">SESSION_COOKIE_HTTPONLY</span></code>
|
||
config var.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.get_cookie_name">
|
||
<span class="sig-name descname"><span class="pre">get_cookie_name</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#flask.sessions.SessionInterface.get_cookie_name" title="Link to this definition"></a></dt>
|
||
<dd><p>The name of the session cookie. Uses``app.config[“SESSION_COOKIE_NAME”]``.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.get_cookie_partitioned">
|
||
<span class="sig-name descname"><span class="pre">get_cookie_partitioned</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.sessions.SessionInterface.get_cookie_partitioned" title="Link to this definition"></a></dt>
|
||
<dd><p>Returns True if the cookie should be partitioned. By default, uses
|
||
the value of <code class="xref py py-data docutils literal notranslate"><span class="pre">SESSION_COOKIE_PARTITIONED</span></code>.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 3.1.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.get_cookie_path">
|
||
<span class="sig-name descname"><span class="pre">get_cookie_path</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#flask.sessions.SessionInterface.get_cookie_path" title="Link to this definition"></a></dt>
|
||
<dd><p>Returns the path for which the cookie should be valid. The
|
||
default implementation uses the value from the <code class="docutils literal notranslate"><span class="pre">SESSION_COOKIE_PATH</span></code>
|
||
config var if it’s set, and falls back to <code class="docutils literal notranslate"><span class="pre">APPLICATION_ROOT</span></code> or
|
||
uses <code class="docutils literal notranslate"><span class="pre">/</span></code> if it’s <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.get_cookie_samesite">
|
||
<span class="sig-name descname"><span class="pre">get_cookie_samesite</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#flask.sessions.SessionInterface.get_cookie_samesite" title="Link to this definition"></a></dt>
|
||
<dd><p>Return <code class="docutils literal notranslate"><span class="pre">'Strict'</span></code> or <code class="docutils literal notranslate"><span class="pre">'Lax'</span></code> if the cookie should use the
|
||
<code class="docutils literal notranslate"><span class="pre">SameSite</span></code> attribute. This currently just returns the value of
|
||
the <code class="xref py py-data docutils literal notranslate"><span class="pre">SESSION_COOKIE_SAMESITE</span></code> setting.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.get_cookie_secure">
|
||
<span class="sig-name descname"><span class="pre">get_cookie_secure</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.sessions.SessionInterface.get_cookie_secure" title="Link to this definition"></a></dt>
|
||
<dd><p>Returns True if the cookie should be secure. This currently
|
||
just returns the value of the <code class="docutils literal notranslate"><span class="pre">SESSION_COOKIE_SECURE</span></code> setting.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.get_expiration_time">
|
||
<span class="sig-name descname"><span class="pre">get_expiration_time</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">session</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.sessions.SessionMixin" title="flask.sessions.SessionMixin"><span class="pre">SessionMixin</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">datetime</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#flask.sessions.SessionInterface.get_expiration_time" title="Link to this definition"></a></dt>
|
||
<dd><p>A helper method that returns an expiration date for the session
|
||
or <code class="docutils literal notranslate"><span class="pre">None</span></code> if the session is linked to the browser session. The
|
||
default implementation returns now + the permanent session
|
||
lifetime configured on the application.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.is_null_session">
|
||
<span class="sig-name descname"><span class="pre">is_null_session</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">object</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.sessions.SessionInterface.is_null_session" title="Link to this definition"></a></dt>
|
||
<dd><p>Checks if a given object is a null session. Null sessions are
|
||
not asked to be saved.</p>
|
||
<p>This checks if the object is an instance of <a class="reference internal" href="#flask.sessions.SessionInterface.null_session_class" title="flask.sessions.SessionInterface.null_session_class"><code class="xref py py-attr docutils literal notranslate"><span class="pre">null_session_class</span></code></a>
|
||
by default.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.make_null_session">
|
||
<span class="sig-name descname"><span class="pre">make_null_session</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.sessions.NullSession" title="flask.sessions.NullSession"><span class="pre">NullSession</span></a></span></span><a class="headerlink" href="#flask.sessions.SessionInterface.make_null_session" title="Link to this definition"></a></dt>
|
||
<dd><p>Creates a null session which acts as a replacement object if the
|
||
real session support could not be loaded due to a configuration
|
||
error. This mainly aids the user experience because the job of the
|
||
null session is to still support lookup without complaining but
|
||
modifications are answered with a helpful error message of what
|
||
failed.</p>
|
||
<p>This creates an instance of <a class="reference internal" href="#flask.sessions.SessionInterface.null_session_class" title="flask.sessions.SessionInterface.null_session_class"><code class="xref py py-attr docutils literal notranslate"><span class="pre">null_session_class</span></code></a> by default.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.null_session_class">
|
||
<span class="sig-name descname"><span class="pre">null_session_class</span></span><a class="headerlink" href="#flask.sessions.SessionInterface.null_session_class" title="Link to this definition"></a></dt>
|
||
<dd><p><a class="reference internal" href="#flask.sessions.SessionInterface.make_null_session" title="flask.sessions.SessionInterface.make_null_session"><code class="xref py py-meth docutils literal notranslate"><span class="pre">make_null_session()</span></code></a> will look here for the class that should
|
||
be created when a null session is requested. Likewise the
|
||
<a class="reference internal" href="#flask.sessions.SessionInterface.is_null_session" title="flask.sessions.SessionInterface.is_null_session"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_null_session()</span></code></a> method will perform a typecheck against
|
||
this type.</p>
|
||
<p>alias of <a class="reference internal" href="#flask.sessions.NullSession" title="flask.sessions.NullSession"><code class="xref py py-class docutils literal notranslate"><span class="pre">NullSession</span></code></a></p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.open_session">
|
||
<span class="sig-name descname"><span class="pre">open_session</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.wrappers.Request" title="flask.wrappers.Request"><span class="pre">Request</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#flask.sessions.SessionMixin" title="flask.sessions.SessionMixin"><span class="pre">SessionMixin</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="headerlink" href="#flask.sessions.SessionInterface.open_session" title="Link to this definition"></a></dt>
|
||
<dd><p>This is called at the beginning of each request, after
|
||
pushing the request context, before matching the URL.</p>
|
||
<p>This must return an object which implements a dictionary-like
|
||
interface as well as the <a class="reference internal" href="#flask.sessions.SessionMixin" title="flask.sessions.SessionMixin"><code class="xref py py-class docutils literal notranslate"><span class="pre">SessionMixin</span></code></a> interface.</p>
|
||
<p>This will return <code class="docutils literal notranslate"><span class="pre">None</span></code> to indicate that loading failed in
|
||
some way that is not immediately an error. The request
|
||
context will fall back to using <a class="reference internal" href="#flask.sessions.SessionInterface.make_null_session" title="flask.sessions.SessionInterface.make_null_session"><code class="xref py py-meth docutils literal notranslate"><span class="pre">make_null_session()</span></code></a>
|
||
in this case.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.pickle_based">
|
||
<span class="sig-name descname"><span class="pre">pickle_based</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#flask.sessions.SessionInterface.pickle_based" title="Link to this definition"></a></dt>
|
||
<dd><p>A flag that indicates if the session interface is pickle based.
|
||
This can be used by Flask extensions to make a decision in regards
|
||
to how to deal with the session object.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.10.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.save_session">
|
||
<span class="sig-name descname"><span class="pre">save_session</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">session</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.sessions.SessionMixin" title="flask.sessions.SessionMixin"><span class="pre">SessionMixin</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">response</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.wrappers.Response" title="flask.wrappers.Response"><span class="pre">Response</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#flask.sessions.SessionInterface.save_session" title="Link to this definition"></a></dt>
|
||
<dd><p>This is called at the end of each request, after generating
|
||
a response, before removing the request context. It is skipped
|
||
if <a class="reference internal" href="#flask.sessions.SessionInterface.is_null_session" title="flask.sessions.SessionInterface.is_null_session"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_null_session()</span></code></a> returns <code class="docutils literal notranslate"><span class="pre">True</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionInterface.should_set_cookie">
|
||
<span class="sig-name descname"><span class="pre">should_set_cookie</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">session</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.sessions.SessionMixin" title="flask.sessions.SessionMixin"><span class="pre">SessionMixin</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#flask.sessions.SessionInterface.should_set_cookie" title="Link to this definition"></a></dt>
|
||
<dd><p>Used by session backends to determine if a <code class="docutils literal notranslate"><span class="pre">Set-Cookie</span></code> header
|
||
should be set for this session cookie for this response. If the session
|
||
has been modified, the cookie is set. If the session is permanent and
|
||
the <code class="docutils literal notranslate"><span class="pre">SESSION_REFRESH_EACH_REQUEST</span></code> config is true, the cookie is
|
||
always set.</p>
|
||
<p>This check is usually skipped if the session was deleted.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.11.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionMixin">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.sessions.</span></span><span class="sig-name descname"><span class="pre">SessionMixin</span></span><a class="headerlink" href="#flask.sessions.SessionMixin" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">MutableMapping</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>, <code class="xref py py-obj docutils literal notranslate"><span class="pre">Any</span></code>]</p>
|
||
<p>Expands a basic dictionary with session attributes.</p>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionMixin.accessed">
|
||
<span class="sig-name descname"><span class="pre">accessed</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#flask.sessions.SessionMixin.accessed" title="Link to this definition"></a></dt>
|
||
<dd><p>Some implementations can detect when session data is read or
|
||
written and set this when that happens. The mixin default is hard
|
||
coded to <code class="docutils literal notranslate"><span class="pre">True</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionMixin.modified">
|
||
<span class="sig-name descname"><span class="pre">modified</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#flask.sessions.SessionMixin.modified" title="Link to this definition"></a></dt>
|
||
<dd><p>Some implementations can detect changes to the session and set
|
||
this when that happens. The mixin default is hard coded to
|
||
<code class="docutils literal notranslate"><span class="pre">True</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionMixin.new">
|
||
<span class="sig-name descname"><span class="pre">new</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#flask.sessions.SessionMixin.new" title="Link to this definition"></a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="flask.sessions.SessionMixin.permanent">
|
||
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">permanent</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><a class="headerlink" href="#flask.sessions.SessionMixin.permanent" title="Link to this definition"></a></dt>
|
||
<dd><p>This reflects the <code class="docutils literal notranslate"><span class="pre">'_permanent'</span></code> key in the dict.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-flask.signals">
|
||
<span id="flask-signals-module"></span><h2>flask.signals module<a class="headerlink" href="#module-flask.signals" title="Link to this heading"></a></h2>
|
||
</section>
|
||
<section id="module-flask.templating">
|
||
<span id="flask-templating-module"></span><h2>flask.templating module<a class="headerlink" href="#module-flask.templating" title="Link to this heading"></a></h2>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.templating.DispatchingJinjaLoader">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.templating.</span></span><span class="sig-name descname"><span class="pre">DispatchingJinjaLoader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">App</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.templating.DispatchingJinjaLoader" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">BaseLoader</span></code></p>
|
||
<p>A loader that looks for templates in the application and all
|
||
the blueprint folders.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.templating.DispatchingJinjaLoader.get_source">
|
||
<span class="sig-name descname"><span class="pre">get_source</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">environment</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Environment</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">template</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">bool</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.templating.DispatchingJinjaLoader.get_source" title="Link to this definition"></a></dt>
|
||
<dd><p>Get the template source, filename and reload helper for a template.
|
||
It’s passed the environment and template name and has to return a
|
||
tuple in the form <code class="docutils literal notranslate"><span class="pre">(source,</span> <span class="pre">filename,</span> <span class="pre">uptodate)</span></code> or raise a
|
||
<cite>TemplateNotFound</cite> error if it can’t locate the template.</p>
|
||
<p>The source part of the returned tuple must be the source of the
|
||
template as a string. The filename should be the name of the
|
||
file on the filesystem if it was loaded from there, otherwise
|
||
<code class="docutils literal notranslate"><span class="pre">None</span></code>. The filename is used by Python for the tracebacks
|
||
if no loader extension is used.</p>
|
||
<p>The last item in the tuple is the <cite>uptodate</cite> function. If auto
|
||
reloading is enabled it’s always called to check if the template
|
||
changed. No arguments are passed so the function must store the
|
||
old state somewhere (for example in a closure). If it returns <cite>False</cite>
|
||
the template will be reloaded.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.templating.DispatchingJinjaLoader.list_templates">
|
||
<span class="sig-name descname"><span class="pre">list_templates</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.templating.DispatchingJinjaLoader.list_templates" title="Link to this definition"></a></dt>
|
||
<dd><p>Iterates over all templates. If the loader does not support that
|
||
it should raise a <code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code> which is the default behavior.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.templating.Environment">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.templating.</span></span><span class="sig-name descname"><span class="pre">Environment</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">App</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">options</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.templating.Environment" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Environment</span></code></p>
|
||
<p>Works like a regular Jinja2 environment but has some additional
|
||
knowledge of how Flask’s blueprint works so that it can prepend the
|
||
name of the blueprint to referenced templates if necessary.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.templating.render_template">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.templating.</span></span><span class="sig-name descname"><span class="pre">render_template</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">template_name_or_list</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Template</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Template</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">context</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#flask.templating.render_template" title="Link to this definition"></a></dt>
|
||
<dd><p>Render a template by name with the given context.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>template_name_or_list</strong> – The name of the template to render. If
|
||
a list is given, the first name to exist will be rendered.</p></li>
|
||
<li><p><strong>context</strong> – The variables to make available in the template.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.templating.render_template_string">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.templating.</span></span><span class="sig-name descname"><span class="pre">render_template_string</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">source</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">context</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#flask.templating.render_template_string" title="Link to this definition"></a></dt>
|
||
<dd><p>Render a template from the given source string with the given
|
||
context.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>source</strong> – The source code of the template to render.</p></li>
|
||
<li><p><strong>context</strong> – The variables to make available in the template.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.templating.stream_template">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.templating.</span></span><span class="sig-name descname"><span class="pre">stream_template</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">template_name_or_list</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Template</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Template</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">context</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Iterator</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.templating.stream_template" title="Link to this definition"></a></dt>
|
||
<dd><p>Render a template by name with the given context as a stream.
|
||
This returns an iterator of strings, which can be used as a
|
||
streaming response from a view.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>template_name_or_list</strong> – The name of the template to render. If
|
||
a list is given, the first name to exist will be rendered.</p></li>
|
||
<li><p><strong>context</strong> – The variables to make available in the template.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 2.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="flask.templating.stream_template_string">
|
||
<span class="sig-prename descclassname"><span class="pre">flask.templating.</span></span><span class="sig-name descname"><span class="pre">stream_template_string</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">source</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">context</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Iterator</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.templating.stream_template_string" title="Link to this definition"></a></dt>
|
||
<dd><p>Render a template from the given source string with the given
|
||
context as a stream. This returns an iterator of strings, which can
|
||
be used as a streaming response from a view.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>source</strong> – The source code of the template to render.</p></li>
|
||
<li><p><strong>context</strong> – The variables to make available in the template.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 2.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-flask.testing">
|
||
<span id="flask-testing-module"></span><h2>flask.testing module<a class="headerlink" href="#module-flask.testing" title="Link to this heading"></a></h2>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.testing.EnvironBuilder">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.testing.</span></span><span class="sig-name descname"><span class="pre">EnvironBuilder</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'/'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">base_url</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">subdomain</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">url_scheme</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.testing.EnvironBuilder" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">EnvironBuilder</span></code></p>
|
||
<p>An <code class="xref py py-class docutils literal notranslate"><span class="pre">EnvironBuilder</span></code>, that takes defaults from the
|
||
application.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>app</strong> – The Flask application to configure the environment from.</p></li>
|
||
<li><p><strong>path</strong> – URL path being requested.</p></li>
|
||
<li><p><strong>base_url</strong> – Base URL where the app is being served, which
|
||
<code class="docutils literal notranslate"><span class="pre">path</span></code> is relative to. If not given, built from
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">PREFERRED_URL_SCHEME</span></code>, <code class="docutils literal notranslate"><span class="pre">subdomain</span></code>,
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">SERVER_NAME</span></code>, and <code class="xref py py-data docutils literal notranslate"><span class="pre">APPLICATION_ROOT</span></code>.</p></li>
|
||
<li><p><strong>subdomain</strong> – Subdomain name to append to <code class="xref py py-data docutils literal notranslate"><span class="pre">SERVER_NAME</span></code>.</p></li>
|
||
<li><p><strong>url_scheme</strong> – Scheme to use instead of
|
||
<code class="xref py py-data docutils literal notranslate"><span class="pre">PREFERRED_URL_SCHEME</span></code>.</p></li>
|
||
<li><p><strong>json</strong> – If given, this is serialized as JSON and passed as
|
||
<code class="docutils literal notranslate"><span class="pre">data</span></code>. Also defaults <code class="docutils literal notranslate"><span class="pre">content_type</span></code> to
|
||
<code class="docutils literal notranslate"><span class="pre">application/json</span></code>.</p></li>
|
||
<li><p><strong>args</strong> – other positional arguments passed to
|
||
<code class="xref py py-class docutils literal notranslate"><span class="pre">EnvironBuilder</span></code>.</p></li>
|
||
<li><p><strong>kwargs</strong> – other keyword arguments passed to
|
||
<code class="xref py py-class docutils literal notranslate"><span class="pre">EnvironBuilder</span></code>.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.testing.EnvironBuilder.json_dumps">
|
||
<span class="sig-name descname"><span class="pre">json_dumps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#flask.testing.EnvironBuilder.json_dumps" title="Link to this definition"></a></dt>
|
||
<dd><p>Serialize <code class="docutils literal notranslate"><span class="pre">obj</span></code> to a JSON-formatted string.</p>
|
||
<p>The serialization will be configured according to the config associated
|
||
with this EnvironBuilder’s <code class="docutils literal notranslate"><span class="pre">app</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.testing.FlaskCliRunner">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.testing.</span></span><span class="sig-name descname"><span class="pre">FlaskCliRunner</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.testing.FlaskCliRunner" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">CliRunner</span></code></p>
|
||
<p>A <code class="xref py py-class docutils literal notranslate"><span class="pre">CliRunner</span></code> for testing a Flask app’s
|
||
CLI commands. Typically created using
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">test_cli_runner()</span></code>. See <span class="xref std std-ref">testing-cli</span>.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.testing.FlaskCliRunner.invoke">
|
||
<span class="sig-name descname"><span class="pre">invoke</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cli</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Result</span></span></span><a class="headerlink" href="#flask.testing.FlaskCliRunner.invoke" title="Link to this definition"></a></dt>
|
||
<dd><p>Invokes a CLI command in an isolated environment. See
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">CliRunner.invoke</span></code> for
|
||
full method documentation. See <span class="xref std std-ref">testing-cli</span> for examples.</p>
|
||
<p>If the <code class="docutils literal notranslate"><span class="pre">obj</span></code> argument is not given, passes an instance of
|
||
<a class="reference internal" href="#flask.cli.ScriptInfo" title="flask.cli.ScriptInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScriptInfo</span></code></a> that knows how to load the Flask
|
||
app being tested.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>cli</strong> – Command object to invoke. Default is the app’s
|
||
<a class="reference internal" href="#flask.app.Flask.cli" title="flask.app.Flask.cli"><code class="xref py py-attr docutils literal notranslate"><span class="pre">cli</span></code></a> group.</p></li>
|
||
<li><p><strong>args</strong> – List of strings to invoke the command with.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>a <code class="xref py py-class docutils literal notranslate"><span class="pre">Result</span></code> object.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.testing.FlaskClient">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.testing.</span></span><span class="sig-name descname"><span class="pre">FlaskClient</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.testing.FlaskClient" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Client</span></code></p>
|
||
<p>Works like a regular Werkzeug test client but has knowledge about
|
||
Flask’s contexts to defer the cleanup of the request context until
|
||
the end of a <code class="docutils literal notranslate"><span class="pre">with</span></code> block. For general information about how to
|
||
use this class refer to <code class="xref py py-class docutils literal notranslate"><span class="pre">werkzeug.test.Client</span></code>.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.12: </span><cite>app.test_client()</cite> includes preset default environment, which can be
|
||
set after instantiation of the <cite>app.test_client()</cite> object in
|
||
<cite>client.environ_base</cite>.</p>
|
||
</div>
|
||
<p>Basic usage is outlined in the <span class="xref std std-doc">/testing</span> chapter.</p>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.testing.FlaskClient.application">
|
||
<span class="sig-name descname"><span class="pre">application</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="#flask.app.Flask" title="flask.app.Flask"><span class="pre">Flask</span></a></em><a class="headerlink" href="#flask.testing.FlaskClient.application" title="Link to this definition"></a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.testing.FlaskClient.open">
|
||
<span class="sig-name descname"><span class="pre">open</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">buffered</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">follow_redirects</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">TestResponse</span></span></span><a class="headerlink" href="#flask.testing.FlaskClient.open" title="Link to this definition"></a></dt>
|
||
<dd><p>Generate an environ dict from the given arguments, make a
|
||
request to the application using it, and return the response.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>args</strong> – Passed to <a class="reference internal" href="#flask.testing.EnvironBuilder" title="flask.testing.EnvironBuilder"><code class="xref py py-class docutils literal notranslate"><span class="pre">EnvironBuilder</span></code></a> to create the
|
||
environ for the request. If a single arg is passed, it can
|
||
be an existing <a class="reference internal" href="#flask.testing.EnvironBuilder" title="flask.testing.EnvironBuilder"><code class="xref py py-class docutils literal notranslate"><span class="pre">EnvironBuilder</span></code></a> or an environ dict.</p></li>
|
||
<li><p><strong>buffered</strong> – Convert the iterator returned by the app into
|
||
a list. If the iterator has a <code class="docutils literal notranslate"><span class="pre">close()</span></code> method, it is
|
||
called automatically.</p></li>
|
||
<li><p><strong>follow_redirects</strong> – Make additional requests to follow HTTP
|
||
redirects until a non-redirect status is returned.
|
||
<code class="xref py py-attr docutils literal notranslate"><span class="pre">TestResponse.history</span></code> lists the intermediate
|
||
responses.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.1: </span>Removed the <code class="docutils literal notranslate"><span class="pre">as_tuple</span></code> parameter.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.0: </span>The request input stream is closed when calling
|
||
<code class="docutils literal notranslate"><span class="pre">response.close()</span></code>. Input streams for redirects are
|
||
automatically closed.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.5: </span>If a dict is provided as file in the dict for the <code class="docutils literal notranslate"><span class="pre">data</span></code>
|
||
parameter the content type has to be called <code class="docutils literal notranslate"><span class="pre">content_type</span></code>
|
||
instead of <code class="docutils literal notranslate"><span class="pre">mimetype</span></code>. This change was made for
|
||
consistency with <code class="xref py py-class docutils literal notranslate"><span class="pre">werkzeug.FileWrapper</span></code>.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.5: </span>Added the <code class="docutils literal notranslate"><span class="pre">follow_redirects</span></code> parameter.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.testing.FlaskClient.session_transaction">
|
||
<span class="sig-name descname"><span class="pre">session_transaction</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Iterator</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#flask.sessions.SessionMixin" title="flask.sessions.SessionMixin"><span class="pre">SessionMixin</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#flask.testing.FlaskClient.session_transaction" title="Link to this definition"></a></dt>
|
||
<dd><p>When used in combination with a <code class="docutils literal notranslate"><span class="pre">with</span></code> statement this opens a
|
||
session transaction. This can be used to modify the session that
|
||
the test client uses. Once the <code class="docutils literal notranslate"><span class="pre">with</span></code> block is left the session is
|
||
stored back.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">with</span> <span class="n">client</span><span class="o">.</span><span class="n">session_transaction</span><span class="p">()</span> <span class="k">as</span> <span class="n">session</span><span class="p">:</span>
|
||
<span class="n">session</span><span class="p">[</span><span class="s1">'value'</span><span class="p">]</span> <span class="o">=</span> <span class="mi">42</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Internally this is implemented by going through a temporary test
|
||
request context and since session handling could depend on
|
||
request variables this function accepts the same arguments as
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">test_request_context()</span></code> which are directly
|
||
passed through.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-flask.typing">
|
||
<span id="flask-typing-module"></span><h2>flask.typing module<a class="headerlink" href="#module-flask.typing" title="Link to this heading"></a></h2>
|
||
</section>
|
||
<section id="module-flask.views">
|
||
<span id="flask-views-module"></span><h2>flask.views module<a class="headerlink" href="#module-flask.views" title="Link to this heading"></a></h2>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.views.MethodView">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.views.</span></span><span class="sig-name descname"><span class="pre">MethodView</span></span><a class="headerlink" href="#flask.views.MethodView" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="#flask.views.View" title="flask.views.View"><code class="xref py py-class docutils literal notranslate"><span class="pre">View</span></code></a></p>
|
||
<p>Dispatches request methods to the corresponding instance methods.
|
||
For example, if you implement a <code class="docutils literal notranslate"><span class="pre">get</span></code> method, it will be used to
|
||
handle <code class="docutils literal notranslate"><span class="pre">GET</span></code> requests.</p>
|
||
<p>This can be useful for defining a REST API.</p>
|
||
<p><code class="xref py py-attr docutils literal notranslate"><span class="pre">methods</span></code> is automatically set based on the methods defined on
|
||
the class.</p>
|
||
<p>See <span class="xref std std-doc">views</span> for a detailed guide.</p>
|
||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">CounterAPI</span><span class="p">(</span><span class="n">MethodView</span><span class="p">):</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="k">return</span> <span class="nb">str</span><span class="p">(</span><span class="n">session</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"counter"</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
|
||
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">post</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="n">session</span><span class="p">[</span><span class="s2">"counter"</span><span class="p">]</span> <span class="o">=</span> <span class="n">session</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"counter"</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
|
||
<span class="k">return</span> <span class="n">redirect</span><span class="p">(</span><span class="n">url_for</span><span class="p">(</span><span class="s2">"counter"</span><span class="p">))</span>
|
||
|
||
<span class="n">app</span><span class="o">.</span><span class="n">add_url_rule</span><span class="p">(</span>
|
||
<span class="s2">"/counter"</span><span class="p">,</span> <span class="n">view_func</span><span class="o">=</span><span class="n">CounterAPI</span><span class="o">.</span><span class="n">as_view</span><span class="p">(</span><span class="s2">"counter"</span><span class="p">)</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.views.MethodView.dispatch_request">
|
||
<span class="sig-name descname"><span class="pre">dispatch_request</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">ft.ResponseReturnValue</span></span></span><a class="headerlink" href="#flask.views.MethodView.dispatch_request" title="Link to this definition"></a></dt>
|
||
<dd><p>The actual view function behavior. Subclasses must override
|
||
this and return a valid response. Any variables from the URL
|
||
rule are passed as keyword arguments.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.views.View">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.views.</span></span><span class="sig-name descname"><span class="pre">View</span></span><a class="headerlink" href="#flask.views.View" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<p>Subclass this class and override <a class="reference internal" href="#flask.views.View.dispatch_request" title="flask.views.View.dispatch_request"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dispatch_request()</span></code></a> to
|
||
create a generic class-based view. Call <a class="reference internal" href="#flask.views.View.as_view" title="flask.views.View.as_view"><code class="xref py py-meth docutils literal notranslate"><span class="pre">as_view()</span></code></a> to create a
|
||
view function that creates an instance of the class with the given
|
||
arguments and calls its <code class="docutils literal notranslate"><span class="pre">dispatch_request</span></code> method with any URL
|
||
variables.</p>
|
||
<p>See <span class="xref std std-doc">views</span> for a detailed guide.</p>
|
||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Hello</span><span class="p">(</span><span class="n">View</span><span class="p">):</span>
|
||
<span class="n">init_every_request</span> <span class="o">=</span> <span class="kc">False</span>
|
||
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">dispatch_request</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
|
||
<span class="k">return</span> <span class="sa">f</span><span class="s2">"Hello, </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">!"</span>
|
||
|
||
<span class="n">app</span><span class="o">.</span><span class="n">add_url_rule</span><span class="p">(</span>
|
||
<span class="s2">"/hello/<name>"</span><span class="p">,</span> <span class="n">view_func</span><span class="o">=</span><span class="n">Hello</span><span class="o">.</span><span class="n">as_view</span><span class="p">(</span><span class="s2">"hello"</span><span class="p">)</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Set <a class="reference internal" href="#flask.views.View.methods" title="flask.views.View.methods"><code class="xref py py-attr docutils literal notranslate"><span class="pre">methods</span></code></a> on the class to change what methods the view
|
||
accepts.</p>
|
||
<p>Set <a class="reference internal" href="#flask.views.View.decorators" title="flask.views.View.decorators"><code class="xref py py-attr docutils literal notranslate"><span class="pre">decorators</span></code></a> on the class to apply a list of decorators to
|
||
the generated view function. Decorators applied to the class itself
|
||
will not be applied to the generated view function!</p>
|
||
<p>Set <a class="reference internal" href="#flask.views.View.init_every_request" title="flask.views.View.init_every_request"><code class="xref py py-attr docutils literal notranslate"><span class="pre">init_every_request</span></code></a> to <code class="docutils literal notranslate"><span class="pre">False</span></code> for efficiency, unless
|
||
you need to store request-global data on <code class="docutils literal notranslate"><span class="pre">self</span></code>.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.views.View.as_view">
|
||
<em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">as_view</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">class_args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">class_kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">t.Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">ft.RouteCallable</span></span></span><a class="headerlink" href="#flask.views.View.as_view" title="Link to this definition"></a></dt>
|
||
<dd><p>Convert the class into a view function that can be registered
|
||
for a route.</p>
|
||
<p>By default, the generated view will create a new instance of the
|
||
view class for every request and call its
|
||
<a class="reference internal" href="#flask.views.View.dispatch_request" title="flask.views.View.dispatch_request"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dispatch_request()</span></code></a> method. If the view class sets
|
||
<a class="reference internal" href="#flask.views.View.init_every_request" title="flask.views.View.init_every_request"><code class="xref py py-attr docutils literal notranslate"><span class="pre">init_every_request</span></code></a> to <code class="docutils literal notranslate"><span class="pre">False</span></code>, the same instance will
|
||
be used for every request.</p>
|
||
<p>Except for <code class="docutils literal notranslate"><span class="pre">name</span></code>, all other arguments passed to this method
|
||
are forwarded to the view class <code class="docutils literal notranslate"><span class="pre">__init__</span></code> method.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.2: </span>Added the <code class="docutils literal notranslate"><span class="pre">init_every_request</span></code> class attribute.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.views.View.decorators">
|
||
<span class="sig-name descname"><span class="pre">decorators</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">ClassVar</span><span class="p"><span class="pre">[</span></span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">[]</span></em><a class="headerlink" href="#flask.views.View.decorators" title="Link to this definition"></a></dt>
|
||
<dd><p>A list of decorators to apply, in order, to the generated view
|
||
function. Remember that <code class="docutils literal notranslate"><span class="pre">@decorator</span></code> syntax is applied bottom
|
||
to top, so the first decorator in the list would be the bottom
|
||
decorator.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.8.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.views.View.dispatch_request">
|
||
<span class="sig-name descname"><span class="pre">dispatch_request</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">ft.ResponseReturnValue</span></span></span><a class="headerlink" href="#flask.views.View.dispatch_request" title="Link to this definition"></a></dt>
|
||
<dd><p>The actual view function behavior. Subclasses must override
|
||
this and return a valid response. Any variables from the URL
|
||
rule are passed as keyword arguments.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.views.View.init_every_request">
|
||
<span class="sig-name descname"><span class="pre">init_every_request</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">ClassVar</span><span class="p"><span class="pre">[</span></span><span class="pre">bool</span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#flask.views.View.init_every_request" title="Link to this definition"></a></dt>
|
||
<dd><p>Create a new instance of this view class for every request by
|
||
default. If a view subclass sets this to <code class="docutils literal notranslate"><span class="pre">False</span></code>, the same
|
||
instance is used for every request.</p>
|
||
<p>A single instance is more efficient, especially if complex setup
|
||
is done during init. However, storing data on <code class="docutils literal notranslate"><span class="pre">self</span></code> is no
|
||
longer safe across requests, and <code class="xref py py-data docutils literal notranslate"><span class="pre">g</span></code> should be used
|
||
instead.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 2.2.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.views.View.methods">
|
||
<span class="sig-name descname"><span class="pre">methods</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">ClassVar</span><span class="p"><span class="pre">[</span></span><span class="pre">Collection</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#flask.views.View.methods" title="Link to this definition"></a></dt>
|
||
<dd><p>The methods this view is registered for. Uses the same default
|
||
(<code class="docutils literal notranslate"><span class="pre">["GET",</span> <span class="pre">"HEAD",</span> <span class="pre">"OPTIONS"]</span></code>) as <code class="docutils literal notranslate"><span class="pre">route</span></code> and
|
||
<code class="docutils literal notranslate"><span class="pre">add_url_rule</span></code> by default.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.views.View.provide_automatic_options">
|
||
<span class="sig-name descname"><span class="pre">provide_automatic_options</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">ClassVar</span><span class="p"><span class="pre">[</span></span><span class="pre">bool</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#flask.views.View.provide_automatic_options" title="Link to this definition"></a></dt>
|
||
<dd><p>Control whether the <code class="docutils literal notranslate"><span class="pre">OPTIONS</span></code> method is handled automatically.
|
||
Uses the same default (<code class="docutils literal notranslate"><span class="pre">True</span></code>) as <code class="docutils literal notranslate"><span class="pre">route</span></code> and
|
||
<code class="docutils literal notranslate"><span class="pre">add_url_rule</span></code> by default.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-flask.wrappers">
|
||
<span id="flask-wrappers-module"></span><h2>flask.wrappers module<a class="headerlink" href="#module-flask.wrappers" title="Link to this heading"></a></h2>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Request">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.wrappers.</span></span><span class="sig-name descname"><span class="pre">Request</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">environ</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">WSGIEnvironment</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">populate_request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shallow</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.wrappers.Request" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Request</span></code></p>
|
||
<p>The request object used by default in Flask. Remembers the
|
||
matched endpoint and view arguments.</p>
|
||
<p>It is what ends up as <code class="xref py py-class docutils literal notranslate"><span class="pre">request</span></code>. If you want to replace
|
||
the request object used you can subclass this and set
|
||
<code class="xref py py-attr docutils literal notranslate"><span class="pre">request_class</span></code> to your subclass.</p>
|
||
<p>The request object is a <code class="xref py py-class docutils literal notranslate"><span class="pre">Request</span></code> subclass and
|
||
provides all of the attributes Werkzeug defines plus a few Flask
|
||
specific ones.</p>
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Request.blueprint">
|
||
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">blueprint</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#flask.wrappers.Request.blueprint" title="Link to this definition"></a></dt>
|
||
<dd><p>The registered name of the current blueprint.</p>
|
||
<p>This will be <code class="docutils literal notranslate"><span class="pre">None</span></code> if the endpoint is not part of a
|
||
blueprint, or if URL matching failed or has not been performed
|
||
yet.</p>
|
||
<p>This does not necessarily match the name the blueprint was
|
||
created with. It may have been nested, or registered with a
|
||
different name.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Request.blueprints">
|
||
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">blueprints</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#flask.wrappers.Request.blueprints" title="Link to this definition"></a></dt>
|
||
<dd><p>The registered names of the current blueprint upwards through
|
||
parent blueprints.</p>
|
||
<p>This will be an empty list if there is no current blueprint, or
|
||
if URL matching failed.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 2.0.1.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Request.endpoint">
|
||
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">endpoint</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#flask.wrappers.Request.endpoint" title="Link to this definition"></a></dt>
|
||
<dd><p>The endpoint that matched the request URL.</p>
|
||
<p>This will be <code class="docutils literal notranslate"><span class="pre">None</span></code> if matching failed or has not been
|
||
performed yet.</p>
|
||
<p>This in combination with <a class="reference internal" href="#flask.wrappers.Request.view_args" title="flask.wrappers.Request.view_args"><code class="xref py py-attr docutils literal notranslate"><span class="pre">view_args</span></code></a> can be used to
|
||
reconstruct the same URL or a modified URL.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Request.json_module">
|
||
<span class="sig-name descname"><span class="pre">json_module</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">t.Any</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre"><module</span> <span class="pre">'flask.json'</span> <span class="pre">from</span> <span class="pre">'/home/edgar/ucr/software_des/repo/flask/src/flask/json/__init__.py'></span></em><a class="headerlink" href="#flask.wrappers.Request.json_module" title="Link to this definition"></a></dt>
|
||
<dd><p>A module or other object that has <code class="docutils literal notranslate"><span class="pre">dumps</span></code> and <code class="docutils literal notranslate"><span class="pre">loads</span></code>
|
||
functions that match the API of the built-in <code class="xref py py-mod docutils literal notranslate"><span class="pre">json</span></code> module.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Request.max_content_length">
|
||
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">max_content_length</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#flask.wrappers.Request.max_content_length" title="Link to this definition"></a></dt>
|
||
<dd><p>The maximum number of bytes that will be read during this request. If
|
||
this limit is exceeded, a 413 <code class="xref py py-exc docutils literal notranslate"><span class="pre">RequestEntityTooLarge</span></code>
|
||
error is raised. If it is set to <code class="docutils literal notranslate"><span class="pre">None</span></code>, no limit is enforced at the
|
||
Flask application level. However, if it is <code class="docutils literal notranslate"><span class="pre">None</span></code> and the request has
|
||
no <code class="docutils literal notranslate"><span class="pre">Content-Length</span></code> header and the WSGI server does not indicate that
|
||
it terminates the stream, then no data is read to avoid an infinite
|
||
stream.</p>
|
||
<p>Each request defaults to the <code class="xref py py-data docutils literal notranslate"><span class="pre">MAX_CONTENT_LENGTH</span></code> config, which
|
||
defaults to <code class="docutils literal notranslate"><span class="pre">None</span></code>. It can be set on a specific <code class="docutils literal notranslate"><span class="pre">request</span></code> to apply
|
||
the limit to that specific view. This should be set appropriately based
|
||
on an application’s or view’s specific needs.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.1: </span>This can be set per-request.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 0.6: </span>This is configurable through Flask config.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Request.max_form_memory_size">
|
||
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">max_form_memory_size</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#flask.wrappers.Request.max_form_memory_size" title="Link to this definition"></a></dt>
|
||
<dd><p>The maximum size in bytes any non-file form field may be in a
|
||
<code class="docutils literal notranslate"><span class="pre">multipart/form-data</span></code> body. If this limit is exceeded, a 413
|
||
<code class="xref py py-exc docutils literal notranslate"><span class="pre">RequestEntityTooLarge</span></code> error is raised. If it
|
||
is set to <code class="docutils literal notranslate"><span class="pre">None</span></code>, no limit is enforced at the Flask application level.</p>
|
||
<p>Each request defaults to the <code class="xref py py-data docutils literal notranslate"><span class="pre">MAX_FORM_MEMORY_SIZE</span></code> config, which
|
||
defaults to <code class="docutils literal notranslate"><span class="pre">500_000</span></code>. It can be set on a specific <code class="docutils literal notranslate"><span class="pre">request</span></code> to
|
||
apply the limit to that specific view. This should be set appropriately
|
||
based on an application’s or view’s specific needs.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.1: </span>This is configurable through Flask config.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Request.max_form_parts">
|
||
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">max_form_parts</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#flask.wrappers.Request.max_form_parts" title="Link to this definition"></a></dt>
|
||
<dd><p>The maximum number of fields that may be present in a
|
||
<code class="docutils literal notranslate"><span class="pre">multipart/form-data</span></code> body. If this limit is exceeded, a 413
|
||
<code class="xref py py-exc docutils literal notranslate"><span class="pre">RequestEntityTooLarge</span></code> error is raised. If it
|
||
is set to <code class="docutils literal notranslate"><span class="pre">None</span></code>, no limit is enforced at the Flask application level.</p>
|
||
<p>Each request defaults to the <code class="xref py py-data docutils literal notranslate"><span class="pre">MAX_FORM_PARTS</span></code> config, which
|
||
defaults to <code class="docutils literal notranslate"><span class="pre">1_000</span></code>. It can be set on a specific <code class="docutils literal notranslate"><span class="pre">request</span></code> to apply
|
||
the limit to that specific view. This should be set appropriately based
|
||
on an application’s or view’s specific needs.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.1: </span>This is configurable through Flask config.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Request.on_json_loading_failed">
|
||
<span class="sig-name descname"><span class="pre">on_json_loading_failed</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">e</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ValueError</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Any</span></span></span><a class="headerlink" href="#flask.wrappers.Request.on_json_loading_failed" title="Link to this definition"></a></dt>
|
||
<dd><p>Called if <code class="xref py py-meth docutils literal notranslate"><span class="pre">get_json()</span></code> fails and isn’t silenced.</p>
|
||
<p>If this method returns a value, it is used as the return value
|
||
for <code class="xref py py-meth docutils literal notranslate"><span class="pre">get_json()</span></code>. The default implementation raises
|
||
<code class="xref py py-exc docutils literal notranslate"><span class="pre">BadRequest</span></code>.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>e</strong> – If parsing failed, this is the exception. It will be
|
||
<code class="docutils literal notranslate"><span class="pre">None</span></code> if the content type wasn’t <code class="docutils literal notranslate"><span class="pre">application/json</span></code>.</p>
|
||
</dd>
|
||
</dl>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.3: </span>Raise a 415 error instead of 400.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Request.routing_exception">
|
||
<span class="sig-name descname"><span class="pre">routing_exception</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">HTTPException</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#flask.wrappers.Request.routing_exception" title="Link to this definition"></a></dt>
|
||
<dd><p>If matching the URL failed, this is the exception that will be
|
||
raised / was raised as part of the request handling. This is
|
||
usually a <code class="xref py py-exc docutils literal notranslate"><span class="pre">NotFound</span></code> exception or
|
||
something similar.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Request.url_rule">
|
||
<span class="sig-name descname"><span class="pre">url_rule</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Rule</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#flask.wrappers.Request.url_rule" title="Link to this definition"></a></dt>
|
||
<dd><p>The internal URL rule that matched the request. This can be
|
||
useful to inspect which methods are allowed for the URL from
|
||
a before/after handler (<code class="docutils literal notranslate"><span class="pre">request.url_rule.methods</span></code>) etc.
|
||
Though if the request’s method was invalid for the URL rule,
|
||
the valid list is available in <code class="docutils literal notranslate"><span class="pre">routing_exception.valid_methods</span></code>
|
||
instead (an attribute of the Werkzeug exception
|
||
<code class="xref py py-exc docutils literal notranslate"><span class="pre">MethodNotAllowed</span></code>)
|
||
because the request was never internally bound.</p>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.6.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Request.view_args">
|
||
<span class="sig-name descname"><span class="pre">view_args</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">t.Any</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#flask.wrappers.Request.view_args" title="Link to this definition"></a></dt>
|
||
<dd><p>A dict of view arguments that matched the request. If an exception
|
||
happened when matching, this will be <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Response">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">flask.wrappers.</span></span><span class="sig-name descname"><span class="pre">Response</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">response</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Iterable</span><span class="p"><span class="pre">[</span></span><span class="pre">bytes</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">bytes</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Iterable</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">status</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">HTTPStatus</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">headers</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Mapping</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Iterable</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Iterable</span><span class="p"><span class="pre">[</span></span><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mimetype</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">content_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">direct_passthrough</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#flask.wrappers.Response" title="Link to this definition"></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Response</span></code></p>
|
||
<p>The response object that is used by default in Flask. Works like the
|
||
response object from Werkzeug but is set to have an HTML mimetype by
|
||
default. Quite often you don’t have to create this object yourself because
|
||
<code class="xref py py-meth docutils literal notranslate"><span class="pre">make_response()</span></code> will take care of that for you.</p>
|
||
<p>If you want to replace the response object used you can subclass this and
|
||
set <code class="xref py py-attr docutils literal notranslate"><span class="pre">response_class</span></code> to your subclass.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.0: </span>JSON support is added to the response, like the request. This is useful
|
||
when testing to get the test client response data as JSON.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 1.0: </span>Added <a class="reference internal" href="#flask.wrappers.Response.max_cookie_size" title="flask.wrappers.Response.max_cookie_size"><code class="xref py py-attr docutils literal notranslate"><span class="pre">max_cookie_size</span></code></a>.</p>
|
||
</div>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Response.autocorrect_location_header">
|
||
<span class="sig-name descname"><span class="pre">autocorrect_location_header</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#flask.wrappers.Response.autocorrect_location_header" title="Link to this definition"></a></dt>
|
||
<dd><p>If a redirect <code class="docutils literal notranslate"><span class="pre">Location</span></code> header is a relative URL, make it an
|
||
absolute URL, including scheme and domain.</p>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 2.1: </span>This is disabled by default, so responses will send relative
|
||
redirects.</p>
|
||
</div>
|
||
<div class="versionadded">
|
||
<p><span class="versionmodified added">Added in version 0.8.</span></p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Response.default_mimetype">
|
||
<span class="sig-name descname"><span class="pre">default_mimetype</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'text/html'</span></em><a class="headerlink" href="#flask.wrappers.Response.default_mimetype" title="Link to this definition"></a></dt>
|
||
<dd><p>the default mimetype if none is provided.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Response.json_module">
|
||
<span class="sig-name descname"><span class="pre">json_module</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre"><module</span> <span class="pre">'flask.json'</span> <span class="pre">from</span> <span class="pre">'/home/edgar/ucr/software_des/repo/flask/src/flask/json/__init__.py'></span></em><a class="headerlink" href="#flask.wrappers.Response.json_module" title="Link to this definition"></a></dt>
|
||
<dd><p>A module or other object that has <code class="docutils literal notranslate"><span class="pre">dumps</span></code> and <code class="docutils literal notranslate"><span class="pre">loads</span></code>
|
||
functions that match the API of the built-in <code class="xref py py-mod docutils literal notranslate"><span class="pre">json</span></code> module.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="flask.wrappers.Response.max_cookie_size">
|
||
<em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">max_cookie_size</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><a class="headerlink" href="#flask.wrappers.Response.max_cookie_size" title="Link to this definition"></a></dt>
|
||
<dd><p>Read-only view of the <code class="xref py py-data docutils literal notranslate"><span class="pre">MAX_COOKIE_SIZE</span></code> config key.</p>
|
||
<p>See <code class="xref py py-attr docutils literal notranslate"><span class="pre">max_cookie_size</span></code> in
|
||
Werkzeug’s docs.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-flask">
|
||
<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-flask" title="Link to this heading"></a></h2>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||
<a href="modules.html" class="btn btn-neutral float-left" title="flask" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||
<a href="flask.json.html" class="btn btn-neutral float-right" title="flask.json package" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||
</div>
|
||
|
||
<hr/>
|
||
|
||
<div role="contentinfo">
|
||
<p>© Copyright 2025, Pallets Team.</p>
|
||
</div>
|
||
|
||
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
||
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
||
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||
|
||
|
||
</footer>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
<script>
|
||
jQuery(function () {
|
||
SphinxRtdTheme.Navigation.enable(true);
|
||
});
|
||
</script>
|
||
|
||
</body>
|
||
</html>
|