Projekt

Obecné

Profil

Stáhnout (12.1 KB) Statistiky
| Větev: | Tag: | Revize:
1
<!doctype html>
2
<html lang="en">
3
<head>
4
<meta charset="utf-8">
5
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
6
<meta name="generator" content="pdoc 0.10.0" />
7
<title>sql_app.api.teams_web API documentation</title>
8
<meta name="description" content="" />
9
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
10
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
11
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
12
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
13
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
14
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
15
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
16
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
17
</head>
18
<body>
19
<main>
20
<article id="content">
21
<header>
22
<h1 class="title">Module <code>sql_app.api.teams_web</code></h1>
23
</header>
24
<section id="section-intro">
25
<details class="source">
26
<summary>
27
<span>Expand source code</span>
28
</summary>
29
<pre><code class="python">from typing import List
30

    
31
from fastapi import Depends, FastAPI, HTTPException, APIRouter, Form
32
from sqlalchemy.orm import Session
33
from sql_app import crud, models, schemas
34
from ..database import SessionLocal, engine
35
from fastapi import FastAPI, Request
36
from fastapi.responses import HTMLResponse
37
from fastapi.staticfiles import StaticFiles
38
from fastapi.templating import Jinja2Templates
39

    
40
models.Base.metadata.create_all(bind=engine)
41

    
42
# Path to html templates used in this file
43
templates = Jinja2Templates(directory=&#34;../templates/teams&#34;)
44

    
45
# prefix used for all endpoints in this file
46
teams_web = APIRouter(prefix=&#34;/api/v1&#34;)
47

    
48

    
49
# Dependency
50
def get_db():
51
    db = SessionLocal()
52
    try:
53
        yield db
54
    finally:
55
        db.close()
56

    
57

    
58
@teams_web.get(&#34;/teams-web&#34;, response_class=HTMLResponse)
59
async def read_devices(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
60
    &#34;&#34;&#34;
61
    Returns template with all teams currently saved in database
62
    &#34;&#34;&#34;
63
    teams = crud.get_teams(db, skip=skip, limit=limit)
64
    return templates.TemplateResponse(&#34;teams.html&#34;, {&#34;request&#34;: request, &#34;teams&#34;: teams})
65

    
66

    
67
@teams_web.get(&#34;/team-create&#34;, response_class=HTMLResponse)
68
async def team_create_web(request: Request):
69
    &#34;&#34;&#34;
70
    Returns template with form for creating new team
71
    &#34;&#34;&#34;
72
    return templates.TemplateResponse(&#34;team_create.html&#34;, {&#34;request&#34;: request})
73

    
74

    
75
@teams_web.post(&#34;/teams-web&#34;, response_class=HTMLResponse)
76
def create_team(request: Request, name: str = Form(...), skip: int = 0, limit: int = 100,
77
                   db: Session = Depends(get_db)):
78
    &#34;&#34;&#34;
79
    Endpoint called from within form for creating new team. Creates new team and returns all teams in database
80
    &#34;&#34;&#34;
81
    team = crud.create_team(db, name)
82
    if team is None:
83
        print(&#34;something went wrong&#34;)
84
    teams = crud.get_teams(db, skip=skip, limit=limit)
85
    return templates.TemplateResponse(&#34;teams.html&#34;, {&#34;request&#34;: request, &#34;teams&#34;: teams})</code></pre>
86
</details>
87
</section>
88
<section>
89
</section>
90
<section>
91
</section>
92
<section>
93
<h2 class="section-title" id="header-functions">Functions</h2>
94
<dl>
95
<dt id="sql_app.api.teams_web.create_team"><code class="name flex">
96
<span>def <span class="ident">create_team</span></span>(<span>request: starlette.requests.Request, name: str = Form(Ellipsis), skip: int = 0, limit: int = 100, db: sqlalchemy.orm.session.Session = Depends(get_db))</span>
97
</code></dt>
98
<dd>
99
<div class="desc"><p>Endpoint called from within form for creating new team. Creates new team and returns all teams in database</p></div>
100
<details class="source">
101
<summary>
102
<span>Expand source code</span>
103
</summary>
104
<pre><code class="python">@teams_web.post(&#34;/teams-web&#34;, response_class=HTMLResponse)
105
def create_team(request: Request, name: str = Form(...), skip: int = 0, limit: int = 100,
106
                   db: Session = Depends(get_db)):
107
    &#34;&#34;&#34;
108
    Endpoint called from within form for creating new team. Creates new team and returns all teams in database
109
    &#34;&#34;&#34;
110
    team = crud.create_team(db, name)
111
    if team is None:
112
        print(&#34;something went wrong&#34;)
113
    teams = crud.get_teams(db, skip=skip, limit=limit)
114
    return templates.TemplateResponse(&#34;teams.html&#34;, {&#34;request&#34;: request, &#34;teams&#34;: teams})</code></pre>
115
</details>
116
</dd>
117
<dt id="sql_app.api.teams_web.get_db"><code class="name flex">
118
<span>def <span class="ident">get_db</span></span>(<span>)</span>
119
</code></dt>
120
<dd>
121
<div class="desc"></div>
122
<details class="source">
123
<summary>
124
<span>Expand source code</span>
125
</summary>
126
<pre><code class="python">def get_db():
127
    db = SessionLocal()
128
    try:
129
        yield db
130
    finally:
131
        db.close()</code></pre>
132
</details>
133
</dd>
134
<dt id="sql_app.api.teams_web.read_devices"><code class="name flex">
135
<span>async def <span class="ident">read_devices</span></span>(<span>request: starlette.requests.Request, skip: int = 0, limit: int = 100, db: sqlalchemy.orm.session.Session = Depends(get_db))</span>
136
</code></dt>
137
<dd>
138
<div class="desc"><p>Returns template with all teams currently saved in database</p></div>
139
<details class="source">
140
<summary>
141
<span>Expand source code</span>
142
</summary>
143
<pre><code class="python">@teams_web.get(&#34;/teams-web&#34;, response_class=HTMLResponse)
144
async def read_devices(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
145
    &#34;&#34;&#34;
146
    Returns template with all teams currently saved in database
147
    &#34;&#34;&#34;
148
    teams = crud.get_teams(db, skip=skip, limit=limit)
149
    return templates.TemplateResponse(&#34;teams.html&#34;, {&#34;request&#34;: request, &#34;teams&#34;: teams})</code></pre>
150
</details>
151
</dd>
152
<dt id="sql_app.api.teams_web.team_create_web"><code class="name flex">
153
<span>async def <span class="ident">team_create_web</span></span>(<span>request: starlette.requests.Request)</span>
154
</code></dt>
155
<dd>
156
<div class="desc"><p>Returns template with form for creating new team</p></div>
157
<details class="source">
158
<summary>
159
<span>Expand source code</span>
160
</summary>
161
<pre><code class="python">@teams_web.get(&#34;/team-create&#34;, response_class=HTMLResponse)
162
async def team_create_web(request: Request):
163
    &#34;&#34;&#34;
164
    Returns template with form for creating new team
165
    &#34;&#34;&#34;
166
    return templates.TemplateResponse(&#34;team_create.html&#34;, {&#34;request&#34;: request})</code></pre>
167
</details>
168
</dd>
169
</dl>
170
</section>
171
<section>
172
</section>
173
</article>
174
<nav id="sidebar">
175
<h1>Index</h1>
176
<div class="toc">
177
<ul></ul>
178
</div>
179
<ul id="index">
180
<li><h3>Super-module</h3>
181
<ul>
182
<li><code><a title="sql_app.api" href="index.html">sql_app.api</a></code></li>
183
</ul>
184
</li>
185
<li><h3><a href="#header-functions">Functions</a></h3>
186
<ul class="">
187
<li><code><a title="sql_app.api.teams_web.create_team" href="#sql_app.api.teams_web.create_team">create_team</a></code></li>
188
<li><code><a title="sql_app.api.teams_web.get_db" href="#sql_app.api.teams_web.get_db">get_db</a></code></li>
189
<li><code><a title="sql_app.api.teams_web.read_devices" href="#sql_app.api.teams_web.read_devices">read_devices</a></code></li>
190
<li><code><a title="sql_app.api.teams_web.team_create_web" href="#sql_app.api.teams_web.team_create_web">team_create_web</a></code></li>
191
</ul>
192
</li>
193
</ul>
194
</nav>
195
</main>
196
<footer id="footer">
197
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.10.0</a>.</p>
198
</footer>
199
</body>
200
</html>
(9-9/11)