|
1245 | 1245 |
|
1246 | 1246 |
|
1247 | 1247 | <h1 id="example">Example</h1>
|
1248 |
| -<div class="highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">fastapi_framework.database</span> <span class="kn">import</span> <span class="n">db</span><span class="p">,</span> <span class="n">select</span> |
1249 |
| -<span class="kn">from</span> <span class="nn">fastapi</span> <span class="kn">import</span> <span class="n">FastAPI</span><span class="p">,</span> <span class="n">HTTPException</span> |
1250 |
| -<span class="kn">from</span> <span class="nn">sqlalchemy</span> <span class="kn">import</span> <span class="n">Integer</span><span class="p">,</span> <span class="n">Column</span><span class="p">,</span> <span class="n">String</span> |
1251 |
| -<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Union</span> |
| 1248 | +<div class="highlight"><pre><span></span><code><span class="kn">from</span><span class="w"> </span><span class="nn">fastapi_framework.database</span><span class="w"> </span><span class="kn">import</span> <span class="n">db</span><span class="p">,</span> <span class="n">select</span> |
| 1249 | +<span class="kn">from</span><span class="w"> </span><span class="nn">fastapi</span><span class="w"> </span><span class="kn">import</span> <span class="n">FastAPI</span><span class="p">,</span> <span class="n">HTTPException</span> |
| 1250 | +<span class="kn">from</span><span class="w"> </span><span class="nn">sqlalchemy</span><span class="w"> </span><span class="kn">import</span> <span class="n">Integer</span><span class="p">,</span> <span class="n">Column</span><span class="p">,</span> <span class="n">String</span> |
| 1251 | +<span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">Union</span> |
1252 | 1252 |
|
1253 | 1253 | <span class="n">app</span> <span class="o">=</span> <span class="n">FastAPI</span><span class="p">()</span>
|
1254 | 1254 |
|
1255 | 1255 |
|
1256 |
| -<span class="k">class</span> <span class="nc">User</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Base</span><span class="p">):</span> |
| 1256 | +<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">Base</span><span class="p">):</span> |
1257 | 1257 | <span class="n">__tablename__</span> <span class="o">=</span> <span class="s2">"users"</span>
|
1258 | 1258 | <span class="nb">id</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">Column</span><span class="p">,</span> <span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="n">Column</span><span class="p">(</span><span class="n">Integer</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
1259 | 1259 | <span class="n">name</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">Column</span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="n">Column</span><span class="p">(</span><span class="n">String</span><span class="p">(</span><span class="mi">255</span><span class="p">))</span>
|
1260 | 1260 |
|
1261 | 1261 | <span class="nd">@staticmethod</span>
|
1262 |
| - <span class="k">async</span> <span class="k">def</span> <span class="nf">create</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"User"</span><span class="p">:</span> |
| 1262 | + <span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">create</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"User"</span><span class="p">:</span> |
1263 | 1263 | <span class="n">row</span> <span class="o">=</span> <span class="n">User</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
|
1264 | 1264 | <span class="k">await</span> <span class="n">db</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">row</span><span class="p">)</span>
|
1265 | 1265 | <span class="k">return</span> <span class="n">row</span>
|
1266 | 1266 |
|
1267 | 1267 |
|
1268 | 1268 | <span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"/users"</span><span class="p">)</span>
|
1269 |
| -<span class="k">async</span> <span class="k">def</span> <span class="nf">get_users</span><span class="p">():</span> |
| 1269 | +<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">get_users</span><span class="p">():</span> |
1270 | 1270 | <span class="k">return</span> <span class="k">await</span> <span class="n">db</span><span class="o">.</span><span class="n">all</span><span class="p">(</span><span class="n">select</span><span class="p">(</span><span class="n">User</span><span class="p">))</span>
|
1271 | 1271 |
|
1272 | 1272 |
|
1273 | 1273 | <span class="nd">@app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"/users/</span><span class="si">{name}</span><span class="s2">"</span><span class="p">)</span>
|
1274 |
| -<span class="k">async</span> <span class="k">def</span> <span class="nf">get_users</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span> |
| 1274 | +<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">get_users</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span> |
1275 | 1275 | <span class="k">return</span> <span class="k">await</span> <span class="n">db</span><span class="o">.</span><span class="n">all</span><span class="p">(</span><span class="n">select</span><span class="p">(</span><span class="n">User</span><span class="p">)</span><span class="o">.</span><span class="n">filter_by</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">))</span>
|
1276 | 1276 |
|
1277 | 1277 |
|
1278 | 1278 | <span class="nd">@app</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="s2">"/users/</span><span class="si">{name}</span><span class="s2">"</span><span class="p">)</span>
|
1279 |
| -<span class="k">async</span> <span class="k">def</span> <span class="nf">add_user</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">User</span><span class="p">:</span> |
| 1279 | +<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">add_user</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">User</span><span class="p">:</span> |
1280 | 1280 | <span class="k">if</span> <span class="k">await</span> <span class="n">db</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">select</span><span class="p">(</span><span class="n">User</span><span class="p">)</span><span class="o">.</span><span class="n">filter_by</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">)):</span>
|
1281 | 1281 | <span class="k">raise</span> <span class="n">HTTPException</span><span class="p">(</span><span class="mi">409</span><span class="p">,</span> <span class="s2">"Username already used"</span><span class="p">)</span>
|
1282 | 1282 | <span class="n">user</span> <span class="o">=</span> <span class="k">await</span> <span class="n">User</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
|
0 commit comments