【发布时间】:2023-01-27 18:21:51
【问题描述】:
#renders login page
@router.get('/login',response_class=HTMLResponse)
def login(request : Request):
return templates.TemplateResponse("login.html", {"request": request})
#creates token upon user validation
@router.post('/login', response_class=HTMLResponse)
def login(request : Request, f: OAuth2PasswordRequestForm = Depends()):
data = generate(f.username,f.password )
if data:
access_token = create_token(data={"sub": f.username})
return templates.TemplateResponse("authenticated.html", {"request": request, "data" : data, "access_token": access_token, "token_type": "bearer"})
<form method="POST">
<h5> Access Site</h5></br>
<input class="input-box" type="username" placeholder="Enter Username" name="username" required><br><br>
<input class="input-box" type="password" placeholder="Enter Password" name="password" required><br><br>
<button class="login_button" type="submit">Login</button><br>
<br>
</form>
File "/usr/local/lib/python3.9/site-packages/fastapi/openapi/utils.py", line 423, in get_openapi
definitions = get_model_definitions(
File "/usr/local/lib/python3.9/site-packages/fastapi/utils.py", line 49, in get_model_definitions
model_name = model_name_map[model]
KeyError: <class 'pydantic.main.Body_login_login_post'>
我不确定为什么我不能加载 swagerUI api,网站本身运行正常....如果我删除表单,那么我可以访问文档(具体删除:f: OAuth2PasswordRequestForm = Depends()).不幸的是,我需要从 html 模板中检索登录输入。见上文的回溯。
【问题讨论】:
标签: fastapi