mirror of
https://github.com/fastapi-users/fastapi-users.git
synced 2026-03-13 07:49:55 +08:00
Automated deployment: Sat Nov 21 16:23:03 UTC 2020 e69a124084
This commit is contained in:
@@ -827,7 +827,7 @@
|
||||
</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">¶</a></h2>
|
||||
<p>We'll now create an SQLAlchemy enigne and ask it to create all the defined tables.</p>
|
||||
<p>We'll now create an SQLAlchemy engine and ask it to create all the defined tables.</p>
|
||||
<div class="highlight"><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>
|
||||
@@ -884,9 +884,9 @@
|
||||
<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>
|
||||
</code></pre></div>
|
||||
<div class="admonition tip">
|
||||
<p class="admonition-title">Tip</p>
|
||||
<p>In production, you would probably want to create the tables with Alembic, integrated with migrations, etc.</p>
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">Warning</p>
|
||||
<p>In production, it's strongly recommended to setup a migration system to update your SQL schemas. See <a href="https://alembic.sqlalchemy.org/en/latest/">Alembic</a>.</p>
|
||||
</div>
|
||||
<h2 id="create-the-database-adapter">Create the database adapter<a class="headerlink" href="#create-the-database-adapter" title="Permanent link">¶</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>
|
||||
|
||||
@@ -758,7 +758,7 @@
|
||||
<div class="highlight"><pre><span></span><code><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>
|
||||
<span class="kn">from</span> <span class="nn">fastapi_users.db</span> <span class="kn">import</span> <span class="n">TortoiseBaseUserModel</span><span class="p">,</span> <span class="n">TortoiseUserDatabase</span>
|
||||
<span class="kn">from</span> <span class="nn">tortoise.contrib.starlette</span> <span class="kn">import</span> <span class="n">register_tortoise</span>
|
||||
<span class="kn">from</span> <span class="nn">tortoise.contrib.fastapi</span> <span class="kn">import</span> <span class="n">register_tortoise</span>
|
||||
|
||||
|
||||
<span class="k">class</span> <span class="nc">User</span><span class="p">(</span><span class="n">models</span><span class="o">.</span><span class="n">BaseUser</span><span class="p">):</span>
|
||||
@@ -787,7 +787,12 @@
|
||||
<span class="n">user_db</span> <span class="o">=</span> <span class="n">TortoiseUserDatabase</span><span class="p">(</span><span class="n">UserDB</span><span class="p">,</span> <span class="n">UserModel</span><span class="p">)</span>
|
||||
<span class="n">app</span> <span class="o">=</span> <span class="n">FastAPI</span><span class="p">()</span>
|
||||
|
||||
<span class="n">register_tortoise</span><span class="p">(</span><span class="n">app</span><span class="p">,</span> <span class="n">modules</span><span class="o">=</span><span class="p">{</span><span class="s2">"models"</span><span class="p">:</span> <span class="p">[</span><span class="s2">"path_to_your_package"</span><span class="p">]})</span>
|
||||
<span class="n">register_tortoise</span><span class="p">(</span>
|
||||
<span class="n">app</span><span class="p">,</span>
|
||||
<span class="n">db_url</span><span class="o">=</span><span class="n">DATABASE_URL</span><span class="p">,</span>
|
||||
<span class="n">modules</span><span class="o">=</span><span class="p">{</span><span class="s2">"models"</span><span class="p">:</span> <span class="p">[</span><span class="s2">"path_to_your_package"</span><span class="p">]},</span>
|
||||
<span class="n">generate_schemas</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
</code></pre></div>
|
||||
<p>As you can see, <strong>FastAPI Users</strong> provides an abstract model 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-database-adapter">Create the database adapter<a class="headerlink" href="#create-the-database-adapter" title="Permanent link">¶</a></h2>
|
||||
@@ -795,7 +800,7 @@
|
||||
<div class="highlight"><pre><span></span><code><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>
|
||||
<span class="kn">from</span> <span class="nn">fastapi_users.db</span> <span class="kn">import</span> <span class="n">TortoiseBaseUserModel</span><span class="p">,</span> <span class="n">TortoiseUserDatabase</span>
|
||||
<span class="kn">from</span> <span class="nn">tortoise.contrib.starlette</span> <span class="kn">import</span> <span class="n">register_tortoise</span>
|
||||
<span class="kn">from</span> <span class="nn">tortoise.contrib.fastapi</span> <span class="kn">import</span> <span class="n">register_tortoise</span>
|
||||
|
||||
|
||||
<span class="k">class</span> <span class="nc">User</span><span class="p">(</span><span class="n">models</span><span class="o">.</span><span class="n">BaseUser</span><span class="p">):</span>
|
||||
@@ -824,16 +829,21 @@
|
||||
<span class="hll"><span class="n">user_db</span> <span class="o">=</span> <span class="n">TortoiseUserDatabase</span><span class="p">(</span><span class="n">UserDB</span><span class="p">,</span> <span class="n">UserModel</span><span class="p">)</span>
|
||||
</span><span class="n">app</span> <span class="o">=</span> <span class="n">FastAPI</span><span class="p">()</span>
|
||||
|
||||
<span class="n">register_tortoise</span><span class="p">(</span><span class="n">app</span><span class="p">,</span> <span class="n">modules</span><span class="o">=</span><span class="p">{</span><span class="s2">"models"</span><span class="p">:</span> <span class="p">[</span><span class="s2">"path_to_your_package"</span><span class="p">]})</span>
|
||||
<span class="n">register_tortoise</span><span class="p">(</span>
|
||||
<span class="n">app</span><span class="p">,</span>
|
||||
<span class="n">db_url</span><span class="o">=</span><span class="n">DATABASE_URL</span><span class="p">,</span>
|
||||
<span class="n">modules</span><span class="o">=</span><span class="p">{</span><span class="s2">"models"</span><span class="p">:</span> <span class="p">[</span><span class="s2">"path_to_your_package"</span><span class="p">]},</span>
|
||||
<span class="n">generate_schemas</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
</code></pre></div>
|
||||
<p>Notice that we pass a reference to your <a href="../../model/"><code>UserDB</code> model</a>.</p>
|
||||
<h2 id="register-tortoise">Register Tortoise<a class="headerlink" href="#register-tortoise" title="Permanent link">¶</a></h2>
|
||||
<p>For using Tortoise ORM we must register our models and database.</p>
|
||||
<p>Tortoise ORM supports integration with Starlette/FastAPI out-of-the-box. It will automatically bind startup and shutdown events.</p>
|
||||
<p>Tortoise ORM supports integration with FastAPI out-of-the-box. It will automatically bind startup and shutdown events.</p>
|
||||
<div class="highlight"><pre><span></span><code><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>
|
||||
<span class="kn">from</span> <span class="nn">fastapi_users.db</span> <span class="kn">import</span> <span class="n">TortoiseBaseUserModel</span><span class="p">,</span> <span class="n">TortoiseUserDatabase</span>
|
||||
<span class="kn">from</span> <span class="nn">tortoise.contrib.starlette</span> <span class="kn">import</span> <span class="n">register_tortoise</span>
|
||||
<span class="kn">from</span> <span class="nn">tortoise.contrib.fastapi</span> <span class="kn">import</span> <span class="n">register_tortoise</span>
|
||||
|
||||
|
||||
<span class="k">class</span> <span class="nc">User</span><span class="p">(</span><span class="n">models</span><span class="o">.</span><span class="n">BaseUser</span><span class="p">):</span>
|
||||
@@ -862,8 +872,17 @@
|
||||
<span class="n">user_db</span> <span class="o">=</span> <span class="n">TortoiseUserDatabase</span><span class="p">(</span><span class="n">UserDB</span><span class="p">,</span> <span class="n">UserModel</span><span class="p">)</span>
|
||||
<span class="n">app</span> <span class="o">=</span> <span class="n">FastAPI</span><span class="p">()</span>
|
||||
|
||||
<span class="hll"><span class="n">register_tortoise</span><span class="p">(</span><span class="n">app</span><span class="p">,</span> <span class="n">modules</span><span class="o">=</span><span class="p">{</span><span class="s2">"models"</span><span class="p">:</span> <span class="p">[</span><span class="s2">"path_to_your_package"</span><span class="p">]})</span>
|
||||
<span class="hll"><span class="n">register_tortoise</span><span class="p">(</span>
|
||||
</span><span class="hll"> <span class="n">app</span><span class="p">,</span>
|
||||
</span><span class="hll"> <span class="n">db_url</span><span class="o">=</span><span class="n">DATABASE_URL</span><span class="p">,</span>
|
||||
</span><span class="hll"> <span class="n">modules</span><span class="o">=</span><span class="p">{</span><span class="s2">"models"</span><span class="p">:</span> <span class="p">[</span><span class="s2">"path_to_your_package"</span><span class="p">]},</span>
|
||||
</span><span class="hll"> <span class="n">generate_schemas</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
||||
</span><span class="hll"><span class="p">)</span>
|
||||
</span></code></pre></div>
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">Warning</p>
|
||||
<p>In production, it's strongly recommended to setup a migration system to update your SQL schemas. See <a href="https://tortoise-orm.readthedocs.io/en/latest/migration.html">https://tortoise-orm.readthedocs.io/en/latest/migration.html</a>.</p>
|
||||
</div>
|
||||
<h2 id="next-steps">Next steps<a class="headerlink" href="#next-steps" title="Permanent link">¶</a></h2>
|
||||
<p>We will now configure an <a href="../../authentication/">authentication method</a>.</p>
|
||||
|
||||
|
||||
@@ -901,7 +901,7 @@ Insecure passwords may give attackers full access to your database.</p>
|
||||
<span class="kn">from</span> <span class="nn">fastapi_users</span> <span class="kn">import</span> <span class="n">FastAPIUsers</span><span class="p">,</span> <span class="n">models</span>
|
||||
<span class="kn">from</span> <span class="nn">fastapi_users.authentication</span> <span class="kn">import</span> <span class="n">JWTAuthentication</span>
|
||||
<span class="kn">from</span> <span class="nn">fastapi_users.db</span> <span class="kn">import</span> <span class="n">TortoiseBaseUserModel</span><span class="p">,</span> <span class="n">TortoiseUserDatabase</span>
|
||||
<span class="kn">from</span> <span class="nn">tortoise.contrib.starlette</span> <span class="kn">import</span> <span class="n">register_tortoise</span>
|
||||
<span class="kn">from</span> <span class="nn">tortoise.contrib.fastapi</span> <span class="kn">import</span> <span class="n">register_tortoise</span>
|
||||
|
||||
<span class="n">DATABASE_URL</span> <span class="o">=</span> <span class="s2">"sqlite://./test.db"</span>
|
||||
<span class="n">SECRET</span> <span class="o">=</span> <span class="s2">"SECRET"</span>
|
||||
@@ -929,7 +929,12 @@ Insecure passwords may give attackers full access to your database.</p>
|
||||
|
||||
<span class="n">user_db</span> <span class="o">=</span> <span class="n">TortoiseUserDatabase</span><span class="p">(</span><span class="n">UserDB</span><span class="p">,</span> <span class="n">UserModel</span><span class="p">)</span>
|
||||
<span class="n">app</span> <span class="o">=</span> <span class="n">FastAPI</span><span class="p">()</span>
|
||||
<span class="n">register_tortoise</span><span class="p">(</span><span class="n">app</span><span class="p">,</span> <span class="n">db_url</span><span class="o">=</span><span class="n">DATABASE_URL</span><span class="p">,</span> <span class="n">modules</span><span class="o">=</span><span class="p">{</span><span class="s2">"models"</span><span class="p">:</span> <span class="p">[</span><span class="s2">"test"</span><span class="p">]})</span>
|
||||
<span class="n">register_tortoise</span><span class="p">(</span>
|
||||
<span class="n">app</span><span class="p">,</span>
|
||||
<span class="n">db_url</span><span class="o">=</span><span class="n">DATABASE_URL</span><span class="p">,</span>
|
||||
<span class="n">modules</span><span class="o">=</span><span class="p">{</span><span class="s2">"models"</span><span class="p">:</span> <span class="p">[</span><span class="s2">"path_to_your_package"</span><span class="p">]},</span>
|
||||
<span class="n">generate_schemas</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">on_after_register</span><span class="p">(</span><span class="n">user</span><span class="p">:</span> <span class="n">UserDB</span><span class="p">,</span> <span class="n">request</span><span class="p">:</span> <span class="n">Request</span><span class="p">):</span>
|
||||
|
||||
@@ -1225,7 +1225,7 @@ Insecure passwords may give attackers full access to your database.</p>
|
||||
<span class="p">)</span>
|
||||
<span class="kn">from</span> <span class="nn">httpx_oauth.clients.google</span> <span class="kn">import</span> <span class="n">GoogleOAuth2</span>
|
||||
<span class="kn">from</span> <span class="nn">tortoise</span> <span class="kn">import</span> <span class="n">fields</span>
|
||||
<span class="kn">from</span> <span class="nn">tortoise.contrib.starlette</span> <span class="kn">import</span> <span class="n">register_tortoise</span>
|
||||
<span class="kn">from</span> <span class="nn">tortoise.contrib.fastapi</span> <span class="kn">import</span> <span class="n">register_tortoise</span>
|
||||
|
||||
<span class="n">DATABASE_URL</span> <span class="o">=</span> <span class="s2">"sqlite://./test.db"</span>
|
||||
<span class="n">SECRET</span> <span class="o">=</span> <span class="s2">"SECRET"</span>
|
||||
@@ -1260,7 +1260,12 @@ Insecure passwords may give attackers full access to your database.</p>
|
||||
|
||||
<span class="n">user_db</span> <span class="o">=</span> <span class="n">TortoiseUserDatabase</span><span class="p">(</span><span class="n">UserDB</span><span class="p">,</span> <span class="n">UserModel</span><span class="p">,</span> <span class="n">OAuthAccountModel</span><span class="p">)</span>
|
||||
<span class="n">app</span> <span class="o">=</span> <span class="n">FastAPI</span><span class="p">()</span>
|
||||
<span class="n">register_tortoise</span><span class="p">(</span><span class="n">app</span><span class="p">,</span> <span class="n">db_url</span><span class="o">=</span><span class="n">DATABASE_URL</span><span class="p">,</span> <span class="n">modules</span><span class="o">=</span><span class="p">{</span><span class="s2">"models"</span><span class="p">:</span> <span class="p">[</span><span class="s2">"test"</span><span class="p">]})</span>
|
||||
<span class="n">register_tortoise</span><span class="p">(</span>
|
||||
<span class="n">app</span><span class="p">,</span>
|
||||
<span class="n">db_url</span><span class="o">=</span><span class="n">DATABASE_URL</span><span class="p">,</span>
|
||||
<span class="n">modules</span><span class="o">=</span><span class="p">{</span><span class="s2">"models"</span><span class="p">:</span> <span class="p">[</span><span class="s2">"path_to_your_package"</span><span class="p">]},</span>
|
||||
<span class="n">generate_schemas</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">on_after_register</span><span class="p">(</span><span class="n">user</span><span class="p">:</span> <span class="n">UserDB</span><span class="p">,</span> <span class="n">request</span><span class="p">:</span> <span class="n">Request</span><span class="p">):</span>
|
||||
|
||||
File diff suppressed because one or more lines are too long
44
sitemap.xml
44
sitemap.xml
@@ -1,91 +1,91 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-11-17</lastmod>
|
||||
<lastmod>2020-11-21</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
</urlset>
|
||||
BIN
sitemap.xml.gz
BIN
sitemap.xml.gz
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
from fastapi import FastAPI
|
||||
from fastapi_users import models
|
||||
from fastapi_users.db import TortoiseBaseUserModel, TortoiseUserDatabase
|
||||
from tortoise.contrib.starlette import register_tortoise
|
||||
from tortoise.contrib.fastapi import register_tortoise
|
||||
|
||||
|
||||
class User(models.BaseUser):
|
||||
@@ -30,4 +30,9 @@ class UserModel(TortoiseBaseUserModel):
|
||||
user_db = TortoiseUserDatabase(UserDB, UserModel)
|
||||
app = FastAPI()
|
||||
|
||||
register_tortoise(app, modules={"models": ["path_to_your_package"]})
|
||||
register_tortoise(
|
||||
app,
|
||||
db_url=DATABASE_URL,
|
||||
modules={"models": ["path_to_your_package"]},
|
||||
generate_schemas=True,
|
||||
)
|
||||
|
||||
@@ -2,7 +2,7 @@ from fastapi import FastAPI, Request
|
||||
from fastapi_users import FastAPIUsers, models
|
||||
from fastapi_users.authentication import JWTAuthentication
|
||||
from fastapi_users.db import TortoiseBaseUserModel, TortoiseUserDatabase
|
||||
from tortoise.contrib.starlette import register_tortoise
|
||||
from tortoise.contrib.fastapi import register_tortoise
|
||||
|
||||
DATABASE_URL = "sqlite://./test.db"
|
||||
SECRET = "SECRET"
|
||||
@@ -30,7 +30,12 @@ class UserModel(TortoiseBaseUserModel):
|
||||
|
||||
user_db = TortoiseUserDatabase(UserDB, UserModel)
|
||||
app = FastAPI()
|
||||
register_tortoise(app, db_url=DATABASE_URL, modules={"models": ["test"]})
|
||||
register_tortoise(
|
||||
app,
|
||||
db_url=DATABASE_URL,
|
||||
modules={"models": ["path_to_your_package"]},
|
||||
generate_schemas=True,
|
||||
)
|
||||
|
||||
|
||||
def on_after_register(user: UserDB, request: Request):
|
||||
|
||||
@@ -8,7 +8,7 @@ from fastapi_users.db import (
|
||||
)
|
||||
from httpx_oauth.clients.google import GoogleOAuth2
|
||||
from tortoise import fields
|
||||
from tortoise.contrib.starlette import register_tortoise
|
||||
from tortoise.contrib.fastapi import register_tortoise
|
||||
|
||||
DATABASE_URL = "sqlite://./test.db"
|
||||
SECRET = "SECRET"
|
||||
@@ -43,7 +43,12 @@ class OAuthAccountModel(TortoiseBaseOAuthAccountModel):
|
||||
|
||||
user_db = TortoiseUserDatabase(UserDB, UserModel, OAuthAccountModel)
|
||||
app = FastAPI()
|
||||
register_tortoise(app, db_url=DATABASE_URL, modules={"models": ["test"]})
|
||||
register_tortoise(
|
||||
app,
|
||||
db_url=DATABASE_URL,
|
||||
modules={"models": ["path_to_your_package"]},
|
||||
generate_schemas=True,
|
||||
)
|
||||
|
||||
|
||||
def on_after_register(user: UserDB, request: Request):
|
||||
|
||||
Reference in New Issue
Block a user