使用zdppy_amauth开发激活用户接口

服务端代码:

  • 1、创建数据库连接对象
  • 2、初始化数据库
  • 3、声明一个上下文
  • 4、挂载用户相关的路由,这里主要由
    • 用户登录接口
    • 用户注册注册
    • 获取用户列表接口
    • 激活指定用户接口
  • 5、启动服务
import mcrud
import api
import amauth
import env
import contextlibenv.load("../.env")
db = mcrud.new_env()amauth.data.init(db, is_init_role=True, is_init_auth=True)@contextlib.asynccontextmanager
async def lifespan(app):yield {"db": db}app = api.Api(routes=[api.resp.post("/auth/user/login", amauth.user.login),api.resp.post("/auth/user/register", amauth.user.register),api.resp.get("/auth/user", amauth.user.get_users),api.resp.put("/auth/user/active/{id}", amauth.user.active),],lifespan=lifespan,
)if __name__ == '__main__':app.run()

测试代码:

  • 1、我们注册一个叫做zhangdapeng1的用户
  • 2、查询所有的用户
  • 3、我们从查询的所有用户中,提取出名字叫做zhangdapeng1的用户的ID。同时,我们要观察,此时这个用户的激活状态是什么?
  • 4、我们根据这个ID去调用激活用户的接口,激活指定ID的用户
  • 5、再次查询所有的用户。此时,我们再次观察,这个用户的激活状态是什么?
import req# 注册
target_url = "http://127.0.0.1:8888/auth/user/register"
data = {"username": "zhangdapeng1","password": "zhangdapeng1","re_password": "zhangdapeng1",
}
resp = req.post(target_url, json=data)
print(resp.json())# 查询所有用户
target_url = "http://127.0.0.1:8888/auth/user"
resp = req.get(target_url)
print(resp.json())# 获取id
data = resp.json()
user_id = None
for u in data.get("data"):if u.get("username") == "zhangdapeng1":user_id = u.get("id")break# 激活
target_url = "http://127.0.0.1:8888/auth/user/active/" + user_id
resp = req.put(target_url)
print(resp.json())# 查询所有用户
target_url = "http://127.0.0.1:8888/auth/user"
resp = req.get(target_url)
print(resp.json())

输出结果:

  • 1、注册:返回True表明成功
  • 2、查询所有的用户:由zhangdapeng1的用户,ID是1788925660358500352,active激活状态是0
  • 3、根据ID激活用户:返回True,表明成功
  • 4、再次查询所有的用户:由zhangdapeng1的用户,ID是1788925660358500352,active激活状态是1
{'msg': 'success', 'status': True, 'code': 10000}{'msg': 'success', 'status': True, 'code': 10000, 'data': [{'id': '1788925660358500352', 'username': 'zhangdapeng1', 'real_name': None, 'mobile': None, 'email': None, 'avatar': None, 'active': 0, 'status': 0, 'add_time': '2024-05-10 13:34:47', 'update_time': '2024-05-10 13:34:47', 'login_time': None}, {'id': '1788925643526758400', 'username': 'zhangdapeng', 'real_name': None, 'mobile': None, 'email': None, 'avatar': None, 'active': 1, 'status': 0, 'add_time': '2024-05-10 13:34:43', 'update_time': '2024-05-10 13:34:43', 'login_time': None}]}{'msg': 'success', 'status': True, 'code': 10000}{'msg': 'success', 'status': True, 'code': 10000, 'data': [{'id': '1788925660358500352', 'username': 'zhangdapeng1', 'real_name': None, 'mobile': None, 'email': None, 'avatar': None, 'active': 1, 'status': 0, 'add_time': '2024-05-10 13:34:47', 'update_time': '2024-05-10 13:34:47', 'login_time': None}, {'id': '1788925643526758400', 'username': 'zhangdapeng', 'real_name': None, 'mobile': None, 'email': None, 'avatar': None, 'active': 1, 'status': 0, 'add_time': '2024-05-10 13:34:43', 'update_time': '2024-05-10 13:34:43', 'login_time': None}]}

总结:如果我们想要使用zdppy_amauth这个框架去实现一个激活用户的接口,那么我们只需要引入amauth.user.active方法并将其使用zdppy_api这个框架挂载到指定路径的接口即可。这个方法,需要传入一个叫做id的路径参数,比如路径可以设计成/auth/user/active/{id}。这个接口方法,除了路径参数以外,不需要接收任何其他参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/9824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

修改页签标题 + 页签图表

修改图标 在App.vue下的created()里或者路由守卫中输入 var link document.querySelector("link[rel*icon]") || document.createElement("link"); link.type "image/x-icon"; link.rel "shortcut icon"; link.href require(l…

非模块化 Vue 开发的 bus 总线通信

个人感觉,JavaScript 非模块开发更适合新人上手,不需要安装配置一大堆软件环境,不需要编译,适合于中小项目开发,只需要一个代码编辑器即可开发,例如 vsCode。网页 html 文件通过 script 标签引入 JavaScrip…

探秘艺术之源:DALL-E3与Midjourney 绘画软件深度对照分析

随着人工智能技术的飞速发展,AI绘画软件已经成为了艺术创作的一大助力。在这场融合了技术与艺术的革新浪潮中,DALL-E3和Midjourney无疑是最受瞩目的两位选手。它们不仅改变了艺术家的创作方式,还为平凡人打开了一扇通往艺术殿堂的大门。本文将…

使用Matplotlib绘制正弦和余弦函数曲线

前言 在数据可视化领域,Matplotlib是一个功能强大的Python库,它允许用户创建各种静态、交互式和动画图形。本文将引导您通过一个简单的示例,学习如何使用Matplotlib绘制正弦和余弦函数曲线。 第一步:导入必要的库: …

【漫画版】指挥官的排序战术:快速排序算法解密

作者介绍:10年大厂数据\经营分析经验,现任字节跳动数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python,欢迎探讨交流 欢迎加入社区:码上找工作 作者专栏每日更新: LeetCode解锁1000题…

基于自我对弈框架的偏好优化算法SPPO

传统的从人类反馈中进行强化学习(RLHF)的方法仰赖如Bradley-Terry模型等参数模型,但这样的模型难以充分捕捉人类偏好中的非递移性和非理性。最新的研究进展显示,直接使用偏好机率可以更准确地反映人类偏好,从而实现更灵活、更精确的语言模型对齐。本文提…

教你解决PUBG绝地求生登不进去 无法进入游戏 启动很慢的问题

尽管《绝地求生》(PUBG)以它那扣人心弦的战术竞技和逼真模拟的战场氛围风靡全球,揽获无数玩家的喜爱,但一些玩家在经历了一场血脉喷张的生存较量后,却不得不面对一个不那么愉悦的后续:游戏在结算阶段后出现…

从某CIM厂12寸项目中止导入谈起

最近在网上开始传播, 两12吋新建Fab中止某CIM导入,CIM国产化路往何方? 从文中我已经知道了这家公司是谁了,看到这个情况,还是感触良多。内部居然还有股权进行内部交易得情况,可见当时多少去博一把了&…

02.02.返回倒数第k个节点

实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 注意:本题相对原题稍作改动 示例: 输入: 1->2->3->4->5 和 k 2 输出: 4 说明: 给定的 k 保证是有效的。 代码&#xff…

2批!2024年武汉市科技企业孵化器、众创空间申报时间、流程

2024年武汉市科技企业孵化器、众创空间申报时间、流程等内容如下,武汉市各区县的企业单位可以了解一下 申报时间 2024-04-22 至 2024-09-14 支持方式 武汉市2024年度科技企业孵化器认定和众创空间备案申报 申报条件 1、市级认定(备案)&a…

跨平台应用开发神器Uniapp

Uniapp是一款基于Vue.js框架的跨平台应用开发框架。它可以将同一份代码编译生成多个应用程序,包括iOS、Android、H5、小程序等。在这篇文章中,我们将详细介绍Uniapp的特点、优势以及如何使用Uniapp开发跨平台应用。 一、Uniapp的特点 1、跨平台开发 U…

YOLOv5改进 | 注意力机制 | 理解全局和局部信息的SE注意力机制

在深度学习目标检测领域,YOLOv5成为了备受关注的模型之一。本文给大家带来的是能够理解全局和局部信息的SE注意力机制。文章在介绍主要的原理后,将手把手教学如何进行模块的代码添加和修改,并将修改后的完整代码放在文章的最后,方…

C语言/数据结构——每日一题(分割链表)

一.前言 今天在LeetCode觉得很不错,想和大家们一起分享这道链表题——分割链表:https://leetcode.cn/problems/partition-list-lcci废话不多说,让我们直接进入正题吧。 二.正文 1.1题目描述 1.2题目分析 大致思路:我们可以通过…

从头开始的建材类电商小程序开发指南

在当今数字化时代,小程序已经成为了许多企业推广和销售的重要渠道。对于建筑材料行业来说,开发一个属于自己的小程序商城不仅可以提升产品曝光度,还可以提供更好的用户购物体验。下面,我们将逐步教你如何开发建筑材料行业小程序。…

未来趋势系列 篇一:AI主题全景分析和股票梳理

文章目录 系列文章全景分析算力算力租赁液冷英伟达AI服务器AI芯片光模块AIPC云计算AIGC大模型KIMI、SORA、秘塔AI股票梳理系列文章 未来趋势系列 篇一:AI主题全景分析和股票梳理<

typescript 中的接口及其用途

接口&#xff1a;定义行为动作的规范 属性接口、函数类型接口、可索引接口、类类型接口、 1、属性接口 对JSON的约束 function printLabel(label: string): void {console.log(printLabel); } printLabel(字符串)function printLabel2(labelInfo: { label: string }): void {…

文章分享:《肿瘤DNA甲基化标志物检测及临床应用专家共识(2024版)》

本文摘自于《肿瘤DNA甲基化标志物检测及临床应用专家共识&#xff08;2024版&#xff09;》 目录 1. DNA甲基化标志物概述 2 DNA甲基化标志物的临床检测 2.1 临床样本前处理注意事项 2.2 DNA甲基化标志物检测技术方法 2.2.1 DNA提取与纯化 2.2.2 DNA转化 2.2.3 DNA 甲基…

Oracle 19C 传输表空间之-Windows 至 Linux

1、源端步骤&#xff08;Windows &#xff09;&#xff1a; SQL> col platform_name for a40 SQL> SELECT * FROM V$TRANSPORTABLE_PLATFORM ORDER BY PLATFORM_ID; PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT CON_ID ----------- -…

翻工第二次 Ant Design Pro 下载,发现问题,电脑网络配置有误,魔法了

一、相关网址链接 鱼皮的用户中心项目 &#xff08;前端Ant Design Pro构建&#xff09; 语雀 ## 没有选择umi版本这一步 Issue #11144 ant-design/ant-design-pro GitHub 关于umi ui图标未显示问题_umi ui不出现-CSDN博客 二、存在问题 导致下载速度慢 本人镜像代码写…

关于emulate

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 enumerate() 函数的主要优势在于简化代码和提高可读性。它解决了在遍历可迭代对象时需要手动跟踪索引的问题。这在需要同时访问元素…