304 lines
14 KiB
HTML
304 lines
14 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Imp.import_app_resources | Quart-Imp</title>
|
|
<link rel="stylesheet" href="static/water.css">
|
|
<link rel="stylesheet" href="static/pygments.emacs-dull.css">
|
|
<link rel="apple-touch-icon" sizes="180x180" href="static/apple-touch-icon.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="static/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="static/favicon-16x16.png">
|
|
<link rel="manifest" href="static/site.webmanifest">
|
|
<link rel="mask-icon" href="static/safari-pinned-tab.svg" color="#5bbad5">
|
|
<meta name="msapplication-TileColor" content="#da532c">
|
|
<meta name="theme-color" content="#ffffff">
|
|
</head>
|
|
<body>
|
|
|
|
<aside>
|
|
<img src="static/quart-Imp-Medium.png" alt="Quart-Imp Logo" style="margin-top: 20px; width: 50%">
|
|
<h1>Quart-Imp</h1>
|
|
<div><small>Version: 1.0.x</small></div>
|
|
<div><small>Last Updated:</small></div>
|
|
<div><small>Fri, 16 Aug 2024</small></div>
|
|
<h2>Menu</h2>
|
|
<ul>
|
|
<li><a href="index.html"><strong>Index</strong></a></li>
|
|
</ul>
|
|
<ul>
|
|
|
|
|
|
<li><strong>CLI Commands</strong></li>
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li><a href="cli_commands-quart-imp_init.html">quart-imp init</a></li>
|
|
|
|
|
|
|
|
<li><a href="cli_commands-quart-imp_blueprint.html">quart-imp blueprint</a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<li><strong>Imp</strong></li>
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li><a href="imp-introduction.html">Introduction</a></li>
|
|
|
|
|
|
|
|
<li><a href="imp-init_app-init.html">init_app, __init__</a></li>
|
|
|
|
|
|
|
|
<li><a href="imp-init_session.html">init_session</a></li>
|
|
|
|
|
|
|
|
<li><a href="imp-import_app_resources.html">import_app_resources</a></li>
|
|
|
|
|
|
|
|
<li><a href="imp-import_blueprint.html">import_blueprint</a></li>
|
|
|
|
|
|
|
|
<li><a href="imp-import_blueprints.html">import_blueprints</a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<li><strong>ImpBlueprint</strong></li>
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li><a href="impblueprint-introduction.html">Introduction</a></li>
|
|
|
|
|
|
|
|
<li><a href="impblueprint-init.html">__init__</a></li>
|
|
|
|
|
|
|
|
|
|
|
|
<li><a href="impblueprint-import_resources.html">import_resources</a></li>
|
|
|
|
|
|
|
|
<li><a href="impblueprint-import_nested_blueprint.html">import_nested_blueprint</a></li>
|
|
|
|
|
|
|
|
<li><a href="impblueprint-import_nested_blueprints.html">import_nested_blueprints</a></li>
|
|
|
|
|
|
|
|
<li><a href="impblueprint-tmpl.html">tmpl</a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<li><strong>quart_imp.config</strong></li>
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li><a href="quart_imp_config-quartconfig.html">QuartConfig</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_config-impconfig.html">ImpConfig</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_config-impblueprintconfig.html">ImpBlueprintConfig</a></li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<li><strong>quart_imp.security</strong></li>
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li><a href="quart_imp_security-login_check.html">login_check</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_security-permission_check.html">permission_check</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_security-pass_function_check.html">pass_function_check</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_security-api_login_check.html">api_login_check</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_security-include_csrf.html">include_csrf</a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<li><strong>quart_imp.auth</strong></li>
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li><a href="quart_imp_auth-encrypt_password.html">encrypt_password</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_auth-authenticate_password.html">authenticate_password</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_auth-generate_password.html">generate_password</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_auth-generate_salt.html">generate_salt</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_auth-generate_csrf_token.html">generate_csrf_token</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_auth-generate_private_key.html">generate_private_key</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_auth-generate_email_validator.html">generate_email_validator</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_auth-generate_numeric_validator.html">generate_numeric_validator</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_auth-generate_alphanumeric_validator.html">generate_alphanumeric_validator</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_auth-is_email_address_valid.html">is_email_address_valid</a></li>
|
|
|
|
|
|
|
|
<li><a href="quart_imp_auth-is_username_valid.html">is_username_valid</a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</ul>
|
|
|
|
<div style="padding-top: 5px; margin-bottom: 20px;"><small>Hosted on GitHub Pages.</small></div>
|
|
</aside>
|
|
|
|
<section>
|
|
<h1 style="font-size: 2.6rem; margin: 0;">Imp.import_app_resources</h1>
|
|
<div class="highlight"><pre><span></span><span class="n">import_app_resources</span><span class="p">(</span>
|
|
<span class="n">folder</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"resources"</span><span class="p">,</span>
|
|
<span class="n">factories</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">List</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<span class="n">static_folder</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"static"</span><span class="p">,</span>
|
|
<span class="n">templates_folder</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"templates"</span><span class="p">,</span>
|
|
<span class="n">files_to_import</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">List</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<span class="n">folders_to_import</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">List</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<span class="p">)</span> <span class="o">-></span> <span class="kc">None</span>
|
|
</pre></div>
|
|
<hr />
|
|
<p>Import standard app resources from the specified folder.</p>
|
|
<p>This will import any resources that have been set to the Quart app.</p>
|
|
<p>Routes, context processors, cli, etc.</p>
|
|
<p><strong>Can only be called once.</strong></p>
|
|
<p>If no static and or template folder is found, the static and or template folder will be set to None in the Quart app
|
|
config.</p>
|
|
<h4>Small example of usage:</h4>
|
|
<div class="highlight"><pre><span></span><span class="n">imp</span><span class="o">.</span><span class="n">import_app_resources</span><span class="p">(</span><span class="n">folder</span><span class="o">=</span><span class="s2">"resources"</span><span class="p">)</span>
|
|
<span class="c1"># or</span>
|
|
<span class="n">imp</span><span class="o">.</span><span class="n">import_app_resources</span><span class="p">()</span>
|
|
<span class="c1"># as the default folder is "resources"</span>
|
|
</pre></div>
|
|
<p>Folder Structure: <code>resources</code></p>
|
|
<div class="highlight"><pre><span></span>app
|
|
├── resources
|
|
│ ├── routes.py
|
|
│ ├── app_fac.py
|
|
│ ├── static
|
|
│ │ └── css
|
|
│ │ └── style.css
|
|
│ └── templates
|
|
│ └── index.html
|
|
└── ...
|
|
...
|
|
</pre></div>
|
|
<p>File: <code>routes.py</code></p>
|
|
<div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">quart</span> <span class="kn">import</span> <span class="n">current_app</span> <span class="k">as</span> <span class="n">app</span>
|
|
<span class="kn">from</span> <span class="nn">quart</span> <span class="kn">import</span> <span class="n">render_template</span>
|
|
|
|
|
|
<span class="nd">@app</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/"</span><span class="p">)</span>
|
|
<span class="k">async</span> <span class="k">def</span> <span class="nf">index</span><span class="p">():</span>
|
|
<span class="k">return</span> <span class="k">await</span> <span class="n">render_template</span><span class="p">(</span><span class="s2">"index.html"</span><span class="p">)</span>
|
|
</pre></div>
|
|
<h4>How factories work</h4>
|
|
<p>Factories are functions that are called when importing the app resources. Here's an example:</p>
|
|
<div class="highlight"><pre><span></span><span class="n">imp</span><span class="o">.</span><span class="n">import_app_resources</span><span class="p">(</span>
|
|
<span class="n">folder</span><span class="o">=</span><span class="s2">"resources"</span><span class="p">,</span>
|
|
<span class="n">factories</span><span class="o">=</span><span class="p">[</span><span class="s2">"development_cli"</span><span class="p">]</span>
|
|
<span class="p">)</span>
|
|
</pre></div>
|
|
<p><code>["development_cli"]</code> => <code>development_cli(app)</code> function will be called, and the current app will be passed in.</p>
|
|
<p>File: <code>app_fac.py</code></p>
|
|
<div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">development_cli</span><span class="p">(</span><span class="n">app</span><span class="p">):</span>
|
|
<span class="nd">@app</span><span class="o">.</span><span class="n">cli</span><span class="o">.</span><span class="n">command</span><span class="p">(</span><span class="s2">"dev"</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">dev</span><span class="p">():</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="s2">"dev cli command"</span><span class="p">)</span>
|
|
</pre></div>
|
|
<h4>Scoping imports</h4>
|
|
<p>By default, all files and folders will be imported.</p>
|
|
<p>To disable this, set <code>files_to_import</code> and or
|
|
<code>folders_to_import</code> to <code>[None]</code>.</p>
|
|
<div class="highlight"><pre><span></span><span class="n">imp</span><span class="o">.</span><span class="n">import_app_resources</span><span class="p">(</span><span class="n">scope_import</span><span class="o">=</span><span class="p">[</span><span class="kc">None</span><span class="p">],</span> <span class="n">folders_to_import</span><span class="o">=</span><span class="p">[</span><span class="kc">None</span><span class="p">])</span>
|
|
</pre></div>
|
|
<p>To scope the imports, set the <code>files_to_import</code> and or <code>folders_to_import</code> to a list of files and or folders.</p>
|
|
<p><code>files_to_import=["cli.py", "routes.py"]</code> => will only import the files <code>resources/cli.py</code>
|
|
and <code>resources/routes.py</code></p>
|
|
<p><code>folders_to_import=["template_filters", "context_processors"]</code> => will import all files in the folders
|
|
<code>resources/template_filters/*.py</code> and <code>resources/context_processors/*.py</code></p>
|
|
|
|
</section>
|
|
|
|
</body>
|
|
</html> |