mirror of
https://github.com/fastapi-users/fastapi-users.git
synced 2025-08-16 03:40:23 +08:00
Automated deployment: Tue Nov 23 07:14:13 UTC 2021 48d1be87a4138da88e95324761febc45d172394d
This commit is contained in:
@ -465,16 +465,15 @@
|
||||
<p>In the following sample, we import our dependencies and create a context manager version using <code>contextlib.asynccontextmanager</code>:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">contextlib</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">fastapi_users.manager</span> <span class="kn">import</span> <span class="n">UserAlreadyExists</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">app.db</span> <span class="kn">import</span> <span class="n">get_user_db</span>
|
||||
<span class="kn">from</span> <span class="nn">app.models</span> <span class="kn">import</span> <span class="n">UserCreate</span>
|
||||
<span class="kn">from</span> <span class="nn">app.users</span> <span class="kn">import</span> <span class="n">get_user_manager</span>
|
||||
<span class="kn">from</span> <span class="nn">fastapi_users.manager</span> <span class="kn">import</span> <span class="n">UserAlreadyExists</span>
|
||||
|
||||
<span class="hll"><span class="n">get_user_db_context</span> <span class="o">=</span> <span class="n">contextlib</span><span class="o">.</span><span class="n">asynccontextmanager</span><span class="p">(</span><span class="n">get_user_db</span><span class="p">)</span>
|
||||
</span><span class="hll"><span class="n">get_user_manager_context</span> <span class="o">=</span> <span class="n">contextlib</span><span class="o">.</span><span class="n">asynccontextmanager</span><span class="p">(</span><span class="n">get_user_manager</span><span class="p">)</span>
|
||||
<span class="n">get_user_db_context</span> <span class="o">=</span> <span class="n">contextlib</span><span class="o">.</span><span class="n">asynccontextmanager</span><span class="p">(</span><span class="n">get_user_db</span><span class="p">)</span>
|
||||
<span class="hll"><span class="n">get_user_manager_context</span> <span class="o">=</span> <span class="n">contextlib</span><span class="o">.</span><span class="n">asynccontextmanager</span><span class="p">(</span><span class="n">get_user_manager</span><span class="p">)</span>
|
||||
</span><span class="hll">
|
||||
</span>
|
||||
|
||||
<span class="k">async</span> <span class="k">def</span> <span class="nf">create_user</span><span class="p">(</span><span class="n">email</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">is_superuser</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="k">async</span> <span class="k">with</span> <span class="n">get_user_db_context</span><span class="p">()</span> <span class="k">as</span> <span class="n">user_db</span><span class="p">:</span>
|
||||
@ -496,18 +495,17 @@
|
||||
<p>We are now ready to write a function. The example below shows you a basic example but you can of course adapt it to your own needs. The key part here is once again to <strong>take care of opening every context managers and pass them every required arguments</strong>, as the dependency manager would do.</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">contextlib</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">fastapi_users.manager</span> <span class="kn">import</span> <span class="n">UserAlreadyExists</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">app.db</span> <span class="kn">import</span> <span class="n">get_user_db</span>
|
||||
<span class="kn">from</span> <span class="nn">app.models</span> <span class="kn">import</span> <span class="n">UserCreate</span>
|
||||
<span class="kn">from</span> <span class="nn">app.users</span> <span class="kn">import</span> <span class="n">get_user_manager</span>
|
||||
<span class="kn">from</span> <span class="nn">fastapi_users.manager</span> <span class="kn">import</span> <span class="n">UserAlreadyExists</span>
|
||||
|
||||
<span class="n">get_user_db_context</span> <span class="o">=</span> <span class="n">contextlib</span><span class="o">.</span><span class="n">asynccontextmanager</span><span class="p">(</span><span class="n">get_user_db</span><span class="p">)</span>
|
||||
<span class="n">get_user_manager_context</span> <span class="o">=</span> <span class="n">contextlib</span><span class="o">.</span><span class="n">asynccontextmanager</span><span class="p">(</span><span class="n">get_user_manager</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="hll"><span class="k">async</span> <span class="k">def</span> <span class="nf">create_user</span><span class="p">(</span><span class="n">email</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">is_superuser</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
|
||||
</span><span class="hll"> <span class="k">try</span><span class="p">:</span>
|
||||
<span class="k">async</span> <span class="k">def</span> <span class="nf">create_user</span><span class="p">(</span><span class="n">email</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">is_superuser</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
|
||||
<span class="hll"> <span class="k">try</span><span class="p">:</span>
|
||||
</span><span class="hll"> <span class="k">async</span> <span class="k">with</span> <span class="n">get_user_db_context</span><span class="p">()</span> <span class="k">as</span> <span class="n">user_db</span><span class="p">:</span>
|
||||
</span><span class="hll"> <span class="k">async</span> <span class="k">with</span> <span class="n">get_user_manager_context</span><span class="p">(</span><span class="n">user_db</span><span class="p">)</span> <span class="k">as</span> <span class="n">user_manager</span><span class="p">:</span>
|
||||
</span><span class="hll"> <span class="n">user</span> <span class="o">=</span> <span class="k">await</span> <span class="n">user_manager</span><span class="o">.</span><span class="n">create</span><span class="p">(</span>
|
||||
|
@ -540,7 +540,7 @@
|
||||
<a href="https://badge.fury.io/py/fastapi-users"><img alt="PyPI version" src="https://badge.fury.io/py/fastapi-users.svg"/></a>
|
||||
<a href="https://pepy.tech/project/fastapi-users"><img alt="Downloads" src="https://pepy.tech/badge/fastapi-users"/></a></p>
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
||||
<p><a href="#contributors-"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-45-orange.svg?style=flat-square"/></a></p>
|
||||
<p><a href="#contributors-"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-46-orange.svg?style=flat-square"/></a></p>
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
||||
<p align="center">
|
||||
<a href="https://www.buymeacoffee.com/frankie567"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=&slug=frankie567&button_colour=FF5F5F&font_colour=ffffff&font_family=Arial&outline_colour=000000&coffee_colour=FFDD00"/></a>
|
||||
@ -653,6 +653,7 @@
|
||||
<td align="center"><a href="http://justobjects.nl"><img alt="" src="https://avatars.githubusercontent.com/u/582630?v=4?s=100" width="100px;"/><br/><sub><b>Just van den Broecke</b></sub></a><br/><a href="#financial-justb4" title="Financial">💵</a></td>
|
||||
<td align="center"><a href="https://github.com/jakemanger"><img alt="" src="https://avatars.githubusercontent.com/u/52495554?v=4?s=100" width="100px;"/><br/><sub><b>jakemanger</b></sub></a><br/><a href="https://github.com/fastapi-users/fastapi-users/issues?q=author%3Ajakemanger" title="Bug reports">🐛</a> <a href="https://github.com/fastapi-users/fastapi-users/commits?author=jakemanger" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://bandism.net/"><img alt="" src="https://avatars.githubusercontent.com/u/22633385?v=4?s=100" width="100px;"/><br/><sub><b>Ikko Ashimine</b></sub></a><br/><a href="https://github.com/fastapi-users/fastapi-users/commits?author=eltociear" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/matyasrichter"><img alt="" src="https://avatars.githubusercontent.com/u/20258539?v=4?s=100" width="100px;"/><br/><sub><b>Matyáš Richter</b></sub></a><br/><a href="https://github.com/fastapi-users/fastapi-users/commits?author=matyasrichter" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- markdownlint-restore -->
|
||||
|
File diff suppressed because one or more lines are too long
62
sitemap.xml
62
sitemap.xml
@ -2,157 +2,157 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2021-11-10</lastmod>
|
||||
<lastmod>2021-11-23</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
</urlset>
|
BIN
sitemap.xml.gz
BIN
sitemap.xml.gz
Binary file not shown.
@ -1,10 +1,9 @@
|
||||
import contextlib
|
||||
|
||||
from fastapi_users.manager import UserAlreadyExists
|
||||
|
||||
from app.db import get_user_db
|
||||
from app.models import UserCreate
|
||||
from app.users import get_user_manager
|
||||
from fastapi_users.manager import UserAlreadyExists
|
||||
|
||||
get_user_db_context = contextlib.asynccontextmanager(get_user_db)
|
||||
get_user_manager_context = contextlib.asynccontextmanager(get_user_manager)
|
||||
|
Reference in New Issue
Block a user