系列文章目录
《FastAPI零基础入门与进阶实战》
https://blog.youkuaiyun.com/sen_shan/category_12950843.html第08篇:基础模块之API 的响应和错误处理
https://blog.youkuaiyun.com/sen_shan/article/details/147414452?spm=1011.2415.3001.5331
文章目录
目录
前言
本案例只是用于测试,随着程序深入将会根据实际情况再做调整。
登录获取Token是API开发的关键环节,本章节将详细讲解登录流程及Token的获取方法。
BaseModel:login_manager
在 src 目录下创建一个名为 models 的文件夹,然后在 models 文件夹内新建一个名为 login_manager.py 的文件
from pydantic import BaseModel
# 定义登录请求模型
class LoginRequest(BaseModel):
username: str
password: str
class LoginManager:
def __init__(self, app_id=None,
api_key=None,
user_id=None,
username=None,
token_key=None,
token_id=None,
email=None,
role=None):
self.app_id = app_id
self.api_key = api_key
self.user_id = user_id
self.username = username
self.role = role
self.token_key = token_key
self.token_id = token_id
self.email = email
def get(self):
return {
"app_id": self.app_id,
"api_key": self.api_key,
"user_id": self.user_id,
"username": self.username,
"role": self.role,
"email": self.email
}
def ret(self):
return {
"api_key": self.api_key,
"username": self.username,
"token_key": self.token_key,
"role": self.role,
"email": self.email
}
def loginData(self):
return {
"user_id": self.user_id,
"username": self.username,
"role": self.role,
"email": self.email
}
def update_app_id(self, new_app_id):
self.app_id = new_app_id
def update_api_key(self, new_api_key):
self.api_key = new_api_key
def update_user_id(self, new_user_id):
self.user_id = new_user_id
def update_username(self, new_username):
self.username = new_username
def update_token_key(self, new_token_key):
self.token_key = new_token_key
def update_role(self, new_role):
self.role = new_role
def update_email(self, new_email):
self.email = new_email
以下是代码的功能性说明:
导入模块
• `from pydantic import BaseModel`:从`pydantic`库中导入`BaseModel`类,用于定义数据模型,支持数据验证和序列化等功能。
数据模型定义
• `LoginRequest`类:
• 继承自`BaseModel`。
• 定义了登录请求所需的两个字段:
• `username`:用户名,类型为字符串。
• `password`:密码,类型为字符串。
• 用于规范登录请求的数据结构,确保请求中包含必要的用户名和密码字段。
登录管理类
• `LoginManager`类:
• 初始化方法:
• 接收多个可选参数,包括:
• `app_id`:应用ID。
• `api_key`:API密钥。
• `user_id`:用户ID。
• `username`:用户名。
• `token_key`:令牌密钥。
• `token_id`:令牌ID。
• `email`:用户邮箱。
• `role`:用户角色。
• 将这些参数初始化为类的属性,用于存储与登录相关的各种信息。
• `get`方法:
• 返回一个字典,包含以下信息:
• `app_id`:应用ID。
• `api_key`:API密钥。
• `user_id`:用户ID。
• `username`:用户名。
• `role`:用户角色。
• `email`:用户邮箱。
•

最低0.47元/天 解锁文章
8091

被折叠的 条评论
为什么被折叠?



