【问题标题】:I am able to get else part of the code, Else part is not working我能够得到代码的其他部分,其他部分不起作用
【发布时间】:2021-08-14 08:21:38
【问题描述】:

我正在编写此登录应用程序的代码。我可以看到,只有 if 语句在此代码中适用于用户名和密码的有效值。如果我输入无效的用户名和密码值,else 部分应该可以工作,但它不起作用。

**main.py**

@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['username']==username and json_compatible_item_data['password']==password:
        
        print(json_compatible_item_data["username"], "22222222222222222")
        return templates.TemplateResponse("homepage.html", {"request": request, "username":username})
    else:
        print("NOOOOOOOOOOOOOOOOO")
        status_code:int
        status_code = 500
        return templates.TemplateResponse("index.html", {"request":request, "status_code":status_code})
    

【问题讨论】:

    标签: python flask tortoise-orm


    【解决方案1】:

    from_tortoise_orm returns a pydantic object 永远不会是 None,因为类的实例始终是非 None 对象(除非您在类定义中覆盖 __eq__ 行为)。

    您可以尝试比较jsonable_encoder(p),而不是比较对象p

    json_compatible_item_data = jsonable_encoder(p)
    if json_compatible_item_data:
        print(json_compatible_item_data["username"], "22222222222222222")
        ...
    else:
        print("NOOOOOOOOOOOOOOOOO")
        ...
    

    更新(基于 OP 的评论)

    你可以的

    if not json_compatible_item_data.get('detail') == 'Object does not exist':
        ...
    else:
        print("NOOOOOOOOOOOOOOOOO")
        ...
    

    【讨论】:

    • 如何解决这个问题?
    • 湿婆,我试过了!它不工作....得到相同的结果!其他部分不工作
    • @SagabarnisaS 在您期望else 子句执行时打印json_compatible_item_data 的值,您看到什么值?
    • 我在浏览器中得到这个 {"detail":"Object does not exist"}
    • 我已经更新了答案,您可能仍然需要处理 json/dict 中的其他值来确定您的请求是否成功。
    【解决方案2】:

    我不是 Django 或 Flask 的专家,但我认为使用 is not 会使其无法使用 != None

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-18
      • 1970-01-01
      • 2020-08-18
      • 1970-01-01
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 2020-07-17
      相关资源
      最近更新 更多