记录Python低代码开发框架zdppy_amcrud的开发过程

news/2024/9/20 7:03:17/ 标签: python, 低代码, android

实现新增接口

基础代码

python">import env
import mcrud
import api
import snowflakeenv.load(".env")
db = mcrud.new_env()table = "user"
columns = ["name", "age"]async def add_user(req):data = await api.req.get_json(req)values = [data.get(k) for k in columns]if "id" not in columns:columns.append("id")values.append(snowflake.idstr())db.add(table, columns, values)return api.resp.success(data)app = api.Api(routes=[api.resp.post("/user/add", add_user)],middleware=[api.middleware.cors()],
)if __name__ == '__main__':app.run()

基本封装

python">import env
import mcrud
import api
import amcrudenv.load(".env")
db = mcrud.new_env()table = "user"
columns = ["name", "age"]app = api.Api(routes=[api.resp.post("/user/add", amcrud.add(db, table, columns))],middleware=[api.middleware.cors()],
)if __name__ == '__main__':app.run()

测试

zhttp 127.0.0.1:8888/user/add name=zs age=23`

在这里插入图片描述

查询所有用户接口

基础代码

python">import env
import mcrud
import api
import amcrudenv.load(".env")
db = mcrud.new_env()table = "user"
columns = ["name", "age"]async def get_all(req):if "id" not in columns:columns.append("id")data = db.get_all(table, columns)return api.resp.success(data)app = api.Api(routes=[api.resp.post("/user", amcrud.add(db, table, columns)),api.resp.get("/user", get_all),],middleware=[api.middleware.cors()],
)if __name__ == '__main__':app.run()

基本封装

python">import env
import mcrud
import api
import amcrudenv.load(".env")
db = mcrud.new_env()table = "user"
columns = ["name", "age"]app = api.Api(routes=[api.resp.post("/user", amcrud.add(db, table, columns)),api.resp.get("/user", amcrud.get_all(db, table, columns)),],middleware=[api.middleware.cors()],
)if __name__ == '__main__':app.run()

测试

zhttp 127.0.0.1:8888/user

在这里插入图片描述

根据ID查询接口

基础代码

python">import env
import mcrud
import api
import amcrudenv.load(".env")
db = mcrud.new_env()table = "user"
columns = ["name", "age"]async def get(req):_id = api.req.get_path(req, "id")data = db.get_by_id(table, _id)return api.resp.success(data)app = api.Api(routes=[api.resp.post("/user", amcrud.add(db, table, columns)),api.resp.get("/user", amcrud.get_all(db, table, columns)),api.resp.get("/user/{id}", get),],middleware=[api.middleware.cors()],
)if __name__ == '__main__':app.run()

基本封装

python">import env
import mcrud
import api
import amcrudenv.load(".env")
db = mcrud.new_env()table = "user"
columns = ["name", "age"]app = api.Api(routes=[api.resp.post("/user", amcrud.add(db, table, columns)),api.resp.get("/user", amcrud.get_all(db, table, columns)),api.resp.get("/user/{id}", amcrud.get(db, table, columns)),],middleware=[api.middleware.cors()],
)if __name__ == '__main__':app.run()

测试

zhttp 127.0.0.1:8888/user/1793956346500816896

在这里插入图片描述

根据ID修改接口

基础代码

python">import env
import mcrud
import api
import amcrudenv.load(".env")
db = mcrud.new_env()table = "user"
columns = ["name", "age"]async def update(req):_id = api.req.get_path(req, "id")data = await api.req.get_json(req)new_columns = []values = []for k, v in data.items():if k in columns:new_columns.append(k)values.append(v)db.update(table, _id, new_columns, values)return api.resp.success()app = api.Api(routes=[api.resp.post("/user", amcrud.add(db, table, columns)),api.resp.get("/user", amcrud.get_all(db, table, columns)),api.resp.get("/user/{id}", amcrud.get(db, table, columns)),api.resp.put("/user/{id}", update),],middleware=[api.middleware.cors()],
)if __name__ == '__main__':app.run()

基本封装

python">import env
import mcrud
import api
import amcrudenv.load(".env")
db = mcrud.new_env()table = "user"
columns = ["name", "age"]app = api.Api(routes=[api.resp.post("/user", amcrud.add(db, table, columns)),api.resp.get("/user", amcrud.get_all(db, table, columns)),api.resp.get("/user/{id}", amcrud.get(db, table, columns)),api.resp.put("/user/{id}", amcrud.update(db, table, columns)),],middleware=[api.middleware.cors()],
)if __name__ == '__main__':app.run()

测试

zhttp PUT 127.0.0.1:8888/user/1793956346500816896 name=zss age=33
zhttp 127.0.0.1:8888/user/1793956346500816896

在这里插入图片描述

根据ID删除接口

基础代码

python">import env
import mcrud
import api
import amcrudenv.load(".env")
db = mcrud.new_env()table = "user"
columns = ["name", "age"]async def delete_route(req):_id = api.req.get_path(req, "id")db.delete(table, _id)return api.resp.success()app = api.Api(routes=[api.resp.post("/user", amcrud.add(db, table, columns)),api.resp.get("/user", amcrud.get_all(db, table, columns)),api.resp.get("/user/{id}", amcrud.get(db, table, columns)),api.resp.put("/user/{id}", amcrud.update(db, table, columns)),api.resp.delete("/user/{id}", delete_route),],middleware=[api.middleware.cors()],
)if __name__ == '__main__':app.run()

基本封装

python">import env
import mcrud
import api
import amcrudenv.load(".env")
db = mcrud.new_env()table = "user"
columns = ["name", "age"]app = api.Api(routes=[api.resp.post("/user", amcrud.add(db, table, columns)),api.resp.get("/user", amcrud.get_all(db, table, columns)),api.resp.get("/user/{id}", amcrud.get(db, table, columns)),api.resp.put("/user/{id}", amcrud.update(db, table, columns)),api.resp.delete("/user/{id}", amcrud.delete(db, table)),],middleware=[api.middleware.cors()],
)if __name__ == '__main__':app.run()

测试

zhttp DELETE 127.0.0.1:8888/user/1793956346500816896
zhttp 127.0.0.1:8888/user

在这里插入图片描述


http://www.ppmy.cn/news/1462745.html

相关文章

【html5】05-自定义属性-切换页面-tab栏新闻列表

引言 04篇的自定义小案例 效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8"><style type"text/css">* {margin: 0;padding: 0;list-style: none;text-decoration: none;}.news {width: 4…

一个基于HOOK机制的微信机器人

一个基于✨HOOK机制的微信机器人&#xff0c;支持&#x1f331;安全新闻定时推送【FreeBuf&#xff0c;先知&#xff0c;安全客&#xff0c;奇安信攻防社区】&#xff0c;&#x1f46f;Kfc文案&#xff0c;⚡备案查询&#xff0c;⚡手机号归属地查询&#xff0c;⚡WHOIS信息查询…

文件系统--软硬链接

文章目录 现象软链接硬链接 现象 建立软链接 建立硬链接 // 删除软硬链接都可以用 unlink 指令 unlink soft-link软链接 软链接是一个独立的文件&#xff0c;因为有独立的inode number 软链接的内容&#xff1a;目标文件所对应的路劲字符串如果我们直接查看软链接文件&#…

期末考试真题c语言知识点速成

选择题及答案 题目: 在C语言中&#xff0c;哪个关键字用于声明一个函数&#xff1f; A. classB. functionC. voidD. int 答案: D. int 题目: 下列哪个是C语言的标准输入输出库&#xff1f; A. math.hB. stdio.hC. string.hD. time.h 答案: B. stdio.h 题目: C语言中&…

SpringCloud系列(22)--Ribbon默认负载轮询算法原理及源码解析

前言&#xff1a;在上一篇文章中我们介绍了如何去切换Ribbon的负载均衡模式&#xff0c;而本章节内容则是介绍Ribbon默认负载轮询算法的原理。 1、负载轮询算法公式 rest接口第N次请求数 % 服务器集群总数 实际调用服务器下标&#xff08;每次服务器重启后rest接口计数从1开始…

人工智能的阴暗面:犯罪分子如何利用 AI 进行欺诈

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;正迅速成为推动各行各业生产力和创新的关键力量&#xff0c;而一些不法分子也开始探索如何将这些先进的工具用于他们自己的非法目的。从网络钓鱼到深度伪造&#xff0c;再到人肉搜索、越狱服务和身份验证系统的…

SO_REUSEPORT 之 TCP负载均衡验证

首先启动两个tcp server&#xff0c; 代码里开启 SO_REUSEPORT [my_testlocalhost test]$ ./tcp_server_reuseport & [1] 1864 [my_testlocalhost test]$ Server listening on port 8888[my_testlocalhost test]$ ./tcp_server_reuseport & [2] 1865 [my_testlocalh…

《Google 软件工程》读书笔记

1. 写在前面 在图书馆瞎逛&#xff0c;偶然瞄见一本《Google 软件工程》Titus Winters, Tom Manshreck, Hyrum Wright 著。主要是在这一排的书架上就这本书看着挺新的&#xff08;不知道为什么有一种喜欢看新书的情节&#xff09;&#xff0c;而且最近被领导老批评&#xff0c;…

数据结构-队列(带图详解)

目录 队列的概念 画图理解队列 代码图理解 代码展示(注意这个队列是单链表的结构实现) Queue.h(队列结构) Queue.c(函数/API实现) main.c(测试文件) 队列的概念 队列&#xff08;Queue&#xff09;是一种基础的数据结构&#xff0c;它遵循先进先出&#xff08;First In …

基础—SQL—通用语法及分类

一、SQL的通用基本语法 &#xff08;1&#xff09;SQL语句可以单行或多行书写&#xff08;以分号结尾&#xff09;。 &#xff08;2&#xff09;在编写SQL语句的时候&#xff0c;如果长度比较长&#xff0c;我们可以允许空格/缩进来增强语句的可读性&#xff0c;而且空格或者…

括号生成[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 数字n代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;["((()))","(()())","(())(…

2024 一键批量下载微博内容/图片/视频/评论/转发数据,导出excel和pdf

以李健的微博为例&#xff0c;抓取2010-2024年所有的微博数据excel&#xff0c;包含微博链接&#xff0c;微博内容&#xff0c;发布时间&#xff0c;点赞数&#xff0c;转发数&#xff0c;评论数&#xff0c;话题等。 每个月的微博转评赞总数曲线&#xff0c;2015年是高峰。 微…

opencv--形态学(开运算、闭运算、形态学梯度、顶帽、黑帽)

开运算 先腐蚀再膨胀&#xff0c;消除细小点、毛刺、连接点等等情况 闭运算 先膨胀再腐蚀&#xff0c;填充孔洞、增强连接点等等情况&#xff0c;或者大家说的增加明亮度 形态学梯度 使用膨胀的图减去腐蚀的图&#xff0c;简单理解就是二值化后形状膨胀后会使得物体变大&am…

APP广告变现怎么实现的,背后逻辑是什么?

广告变现的实现主要基于以下几个关键步骤和逻辑&#xff1a; 用户获取与留存&#xff1a;首先&#xff0c;APP需要吸引足够的用户并确保他们的留存率。只有拥有庞大且活跃的用户基础&#xff0c;APP才能吸引广告商投放广告。因此&#xff0c;开发者需要通过优化APP质量、提升用…

[实例] Unity Shader 逐像素漫反射与半兰伯特光照

漫反射光照是Unity中最基本最简单的光照模型&#xff0c;本篇将会介绍在片元着色器中实现反射效果&#xff0c;并会采用半兰伯特光照技术对其进行改进。 1. 逐顶点光照与逐像素光照 在Unity Shader中&#xff0c;我们可以有两个地方可以用来计算光照&#xff1a;在顶点着色器…

后端雪花算法主键ID传到前端变了

Mybatis Plus 的主键策略&#xff1a; /*** id*/TableId(type IdType.ASSIGN_ID)private Long id; 这个主键策略会用雪花算法生成一个 19位的ID&#xff0c;比如 1791006670084734978 现象 后端生成的 id 是正常的&#xff0c;通过 swagger 文档此时获取到的 id 也和数据库中…

GitHub的原理及应用详解(四)

本系列文章简介&#xff1a; GitHub是一个基于Git版本控制系统的代码托管平台&#xff0c;为开发者提供了一个方便的协作和版本管理的工具。它广泛应用于软件开发项目中&#xff0c;包括但不限于代码托管、协作开发、版本控制、错误追踪、持续集成等方面。 GitHub的原理可以简单…

RabbitMQ(二)七种工作模式

文章目录 概述:工作模式&#xff08;七种&#xff09;1. "Hello World!"2. Work Queues&#xff08;工作队列模式&#xff09;3. Publish/Subscribe&#xff08;发布订阅模式&#xff09;4. Routing5. Topics6. RPC7. Publisher Confirms 详细1. "Hello World!&…

哈醉咯最狠

3、通过命令行安装aptitude sudo apt-get install aptitude4、通过命令行利用aptitude 安装fcitx、qtsudo aptitude install fcitx-bin fcitx-table fcitx-config-gtk fcitx-config-gtk2 fcitx-frontend-allsudo aptitude install qt5-default qtcreator qml-module-qtquick-co…

Linux(centos)常用命令

Linux&#xff08;Centos&#xff09;常用命令使用说明文档 切换到/home目录下 使用cd命令切换目录&#xff0c;例如&#xff1a; cd /home列出/home目录下的所有文件 使用ls命令列出目录下的文件和子目录&#xff0c;例如&#xff1a; ls /home新建目录dir1 使用mkdir命…