首页 > 解决方案 > 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})

我给出了下面的屏幕截图的错误

在此处输入图像描述

标签: pythonfastapi

解决方案


您应该能够直接从请求中获取表单值

async def login_success(request: Request):
    form = await self.request.form()
    username = form.get('username', '').lower().strip()
    password = form.get('password', '').strip()

这应该可以帮助您找到错误所在。如果用户名和密码为空,那么您需要仔细检查您的 HTML 表单


推荐阅读