Automated deployment: Thu Feb 13 14:27:59 UTC 2020 0b68bd5f5d

This commit is contained in:
frankie567
2020-02-13 14:27:59 +00:00
parent e9300404a5
commit 84b10b25c4
21 changed files with 290 additions and 290 deletions

View File

@@ -34,7 +34,7 @@
<meta name="lang:search.tokenizer" content="[\s\-]+">
<link rel="shortcut icon" href="../../../favicon.png">
<meta name="generator" content="mkdocs-1.0.4, mkdocs-material-4.6.0">
<meta name="generator" content="mkdocs-1.0.4, mkdocs-material-4.6.2">
@@ -42,7 +42,7 @@
<link rel="stylesheet" href="../../../assets/stylesheets/application.1b62728e.css">
<link rel="stylesheet" href="../../../assets/stylesheets/application.adb8469c.css">
<link rel="stylesheet" href="../../../assets/stylesheets/application-palette.a8b3c06d.css">
@@ -53,7 +53,7 @@
<script src="../../../assets/javascripts/modernizr.268332fc.js"></script>
<script src="../../../assets/javascripts/modernizr.86422ebf.js"></script>
@@ -87,7 +87,7 @@
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
<a href="#sqlalchemy" tabindex="1" class="md-skip">
<a href="#sqlalchemy" tabindex="0" class="md-skip">
Skip to content
</a>
@@ -96,7 +96,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="../../.." title="FastAPI Users" class="md-header-nav__button md-logo">
<a href="../../.." title="FastAPI Users" aria-label="FastAPI Users" class="md-header-nav__button md-logo">
<i class="md-icon">supervisor_account</i>
@@ -127,7 +127,7 @@
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
<input type="text" class="md-search__input" aria-label="search" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
<label class="md-icon md-search__icon" for="__search"></label>
<button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
&#xE5CD;
@@ -642,19 +642,19 @@
<p><strong>FastAPI Users</strong> provides the necessary tools to work with SQL databases thanks to <a href="https://docs.sqlalchemy.org/en/13/core/">SQLAlchemy Core</a> and <a href="https://www.encode.io/databases/">encode/databases</a> package for full async support.</p>
<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h2>
<p>Install the database driver that corresponds to your DBMS:</p>
<div class="codehilite"><pre><span></span>pip install databases<span class="o">[</span>postgresql<span class="o">]</span>
</pre></div>
<div class="codehilite"><pre><span></span><code>pip install databases<span class="o">[</span>postgresql<span class="o">]</span>
</code></pre></div>
<div class="codehilite"><pre><span></span>pip install databases<span class="o">[</span>mysql<span class="o">]</span>
</pre></div>
<div class="codehilite"><pre><span></span><code>pip install databases<span class="o">[</span>mysql<span class="o">]</span>
</code></pre></div>
<div class="codehilite"><pre><span></span>pip install databases<span class="o">[</span>sqlite<span class="o">]</span>
</pre></div>
<div class="codehilite"><pre><span></span><code>pip install databases<span class="o">[</span>sqlite<span class="o">]</span>
</code></pre></div>
<p>For the sake of this tutorial from now on, we'll use a simple SQLite databse.</p>
<h2 id="setup-user-table">Setup User table<a class="headerlink" href="#setup-user-table" title="Permanent link">&para;</a></h2>
<p>Let's create a <code>metadata</code> object and declare our User table.</p>
<div class="codehilite"><pre><span></span><span class="kn">import</span> <span class="nn">databases</span>
<div class="codehilite"><pre><span></span><code><span class="kn">import</span> <span class="nn">databases</span>
<span class="kn">import</span> <span class="nn">sqlalchemy</span>
<span class="kn">from</span> <span class="nn">fastapi</span> <span class="kn">import</span> <span class="n">FastAPI</span>
<span class="kn">from</span> <span class="nn">fastapi_users</span> <span class="kn">import</span> <span class="n">models</span>
@@ -709,12 +709,12 @@
<span class="nd">@app</span><span class="o">.</span><span class="n">on_event</span><span class="p">(</span><span class="s2">&quot;shutdown&quot;</span><span class="p">)</span>
<span class="k">async</span> <span class="k">def</span> <span class="nf">shutdown</span><span class="p">():</span>
<span class="k">await</span> <span class="n">database</span><span class="o">.</span><span class="n">disconnect</span><span class="p">()</span>
</pre></div>
</code></pre></div>
<p>As you can see, <strong>FastAPI Users</strong> provides a mixin that will include base fields for our User table. You can of course add you own fields there to fit to your needs!</p>
<h2 id="create-the-tables">Create the tables<a class="headerlink" href="#create-the-tables" title="Permanent link">&para;</a></h2>
<p>We'll now create an SQLAlchemy enigne and ask it to create all the defined tables.</p>
<div class="codehilite"><pre><span></span><span class="kn">import</span> <span class="nn">databases</span>
<div class="codehilite"><pre><span></span><code><span class="kn">import</span> <span class="nn">databases</span>
<span class="kn">import</span> <span class="nn">sqlalchemy</span>
<span class="kn">from</span> <span class="nn">fastapi</span> <span class="kn">import</span> <span class="n">FastAPI</span>
<span class="kn">from</span> <span class="nn">fastapi_users</span> <span class="kn">import</span> <span class="n">models</span>
@@ -769,7 +769,7 @@
<span class="nd">@app</span><span class="o">.</span><span class="n">on_event</span><span class="p">(</span><span class="s2">&quot;shutdown&quot;</span><span class="p">)</span>
<span class="k">async</span> <span class="k">def</span> <span class="nf">shutdown</span><span class="p">():</span>
<span class="k">await</span> <span class="n">database</span><span class="o">.</span><span class="n">disconnect</span><span class="p">()</span>
</pre></div>
</code></pre></div>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
@@ -777,7 +777,7 @@
</div>
<h2 id="create-the-database-adapter">Create the database adapter<a class="headerlink" href="#create-the-database-adapter" title="Permanent link">&para;</a></h2>
<p>The database adapter of <strong>FastAPI Users</strong> makes the link between your database configuration and the users logic. Create it like this.</p>
<div class="codehilite"><pre><span></span><span class="kn">import</span> <span class="nn">databases</span>
<div class="codehilite"><pre><span></span><code><span class="kn">import</span> <span class="nn">databases</span>
<span class="kn">import</span> <span class="nn">sqlalchemy</span>
<span class="kn">from</span> <span class="nn">fastapi</span> <span class="kn">import</span> <span class="n">FastAPI</span>
<span class="kn">from</span> <span class="nn">fastapi_users</span> <span class="kn">import</span> <span class="n">models</span>
@@ -832,7 +832,7 @@
<span class="nd">@app</span><span class="o">.</span><span class="n">on_event</span><span class="p">(</span><span class="s2">&quot;shutdown&quot;</span><span class="p">)</span>
<span class="k">async</span> <span class="k">def</span> <span class="nf">shutdown</span><span class="p">():</span>
<span class="k">await</span> <span class="n">database</span><span class="o">.</span><span class="n">disconnect</span><span class="p">()</span>
</pre></div>
</code></pre></div>
<p>Notice that we pass it three things:</p>
<ul>
@@ -902,9 +902,9 @@
<div class="md-footer-copyright">
powered by
<a href="https://www.mkdocs.org">MkDocs</a>
<a href="https://www.mkdocs.org" target="_blank" rel="noopener">MkDocs</a>
and
<a href="https://squidfunk.github.io/mkdocs-material/">
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs</a>
</div>
@@ -914,7 +914,7 @@
</div>
<script src="../../../assets/javascripts/application.808e90bb.js"></script>
<script src="../../../assets/javascripts/application.c33a9706.js"></script>
<script>app.initialize({version:"1.0.4",url:{base:"../../.."}})</script>