FastAPI, Request, Form登录

loginresult.html

<!DOCTYPE html>  <html lang="en">  <head>  
    <meta charset="UTF-8">  
    <title>登录</title>  </head>  <body>  
   <form method="post">  
     <p>{{login_tip}}</p>  
     <div>           
       <label for="username">请输入用户名</label>  
       <input type="text" id="username" name="username">  
    </div>       
    <div>           
      <label for="password">请输入密码</label>  
      <input type="password" id="password" name="password">  
    </div>       
    <input type="submit" value="提交">  
   </form>  </body>  </html>

fastApiLogin.py

from fastapi import FastAPI, Request, Form  
from fastapi.responses import HTMLResponse  
from fastapi.staticfiles import StaticFiles  
from fastapi.templating import Jinja2Templates  

app = FastAPI()  

# app.mount(  
#     "/static",   #目录` static `
# StaticFiles(directory="static"),   
# name="static"  )  


templates = Jinja2Templates(directory="templates")#模板文件夹,放html文件


@app.get("/login/", response_class=HTMLResponse) 
async def read_item(request: Request):
        print(request.method)  

        return templates.TemplateResponse(  
        "loginresult.html", context={  
            'request': request, 'login_tip': '用户登录'  
        }  
    )  


@app.post("/login/") 
async def login(  
        username: str = Form(),   
        password: str = Form()  ):  
        return {"username": username}  


if __name__ == "__main__":  
    import uvicorn  
    uvicorn.run(  
    app='fastApiLogin:app',   
    host="127.0.0.1",   
    port=8000, reload=True  
    )

在这里插入图片描述
在这里插入图片描述

优化了一下,加了name判断超出长度限制

@app.post("/login/") 
async def login(  
        username: str = Form(),   
        password: str = Form()  ): 
        if len(username)>3:#超过3个汉字就报错了
              # raise ValueError("超出长度了") #抛异常
               return "超出长度了"
        return {"username": username}  

raise ValueError(“超出长度了”) #抛异常,如下

File “d:\pythonXangmu\pythonproject01\fastApiLogin.py”, line 33, in login
raise ValueError(“超出长度了”) #抛异常
ValueError: 超出长度了

return “超出长度了”,结果展示:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值