7. fastApi表单数据处理详解与示例
python处理form表单数据,登录校验,cookie过期设置。
·
需求:
前端通过表单数据的形式发送用户名与密码到后端,后端通过用户信息校验,过滤出合法用户,并为用户设置cookie(超时时间为24h)
接口路径:/login
请求类型:post方法发送的文件
响应结果:成功就返回登录成功消息,并设置cookie,失败则发送失败消息
实现方案: 使用Form方法接受用户名与密码,并设置cookie。【cookie设置方法参考https://editor.csdn.net/md/?articleId=129065505】
实现代码:
from fastapi import FastAPI, Request, Form
from fastapi.responses import JSONResponse
import hashlib
from pydantic import BaseModel
from datetime import datetime,timedelta
@app.post("/login")
async def login_user_info_detail(username: str = Form(),
password: str = Form(),
):
# 输出用户名与密码到控制台
print(username, password)
# 校验用户信息
result = check_user(username, password)
# 4
if result:
# 添加cookie
return cookie_detail(username)
return {"msg": "登录失败"}
# 3
def check_user(username, password):
# 用于校验用户信息
if username == "admin" and password == "admin":
return True
else:
return False
# 5.
def cookie_detail(username):
# md5加密username
m = hashlib.md5()
m.update(username.encode('utf-8'))
session_id = m.hexdigest()
print("生成的cookie值为==>", session_id)
response = JSONResponse({"msg": "登录成功"})
expires = datetime.now() + timedelta(hours=24)
response.set_cookie(key='sessionId', value=session_id,expires=expires)
return response
swaggerui接口测试
python接口测试

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)