python - fastapi登录页面登录页面验证错误422
问题描述
我正在处理这段代码。我在此代码上收到验证错误 422,但无法找出问题所在
主文件
@app.post("/loginsuccess/", response_class=HTMLResponse)
async def login_success(request: Request, username: str = Form(...), password: str = Form(...)):
p = await User_Pydantic.from_tortoise_orm(await User.get(username=username, password=password))
json_compatible_item_data = jsonable_encoder(p)
if json_compatible_item_data is not None:
logger.info("Logged in Successfully")
return templates.TemplateResponse("homepage.html", {"request": request, "username":username})
else:
status_code:int
status_code = 500
logger.error("Invalid Credentials")
return templates.TemplateResponse("index.html", {"request":request, "status_code":status_code})
我给出了下面的屏幕截图的错误
解决方案
您应该能够直接从请求中获取表单值
async def login_success(request: Request):
form = await self.request.form()
username = form.get('username', '').lower().strip()
password = form.get('password', '').strip()
这应该可以帮助您找到错误所在。如果用户名和密码为空,那么您需要仔细检查您的 HTML 表单
推荐阅读
- go - echo 中是否有为 newrlic APM 构建的中间件?
- html - 在具有 2 个主列的网页上,如何始终保持两个列的全高
- outlook - Outlook文件夹有一些唯一的ID?
- javascript - React-Native:无法导航到第二个屏幕
- node.js - 安装airbnb eslint时未定义ERR
- reinforcement-learning - 通缉:用于最大化所有代理的整体奖励的多代理系统
- java - 安装了 Java 11,打开了 Jshell,没有显示输入的命令,按 Enter 没有任何作用
- excel - 如何使用 VBA 使用来自其他 excel 文件的新数据覆盖数据库中的数据?
- javascript - 将 react native sdk 版本从 0.61.5 更新到 0.64.0 时,Transformer 不是构造函数错误
- java - 从 sonatype API 获取 Maven 库的最新版本号