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

实现新增接口

基础代码

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()

基本封装

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`

在这里插入图片描述

查询所有用户接口

基础代码

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()

基本封装

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查询接口

基础代码

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()

基本封装

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修改接口

基础代码

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()

基本封装

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删除接口

基础代码

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()

基本封装

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.rhkb.cn/news/330137.html

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

相关文章

跟TED演讲学英文:Do schools kill creativity by Sir Ken Robinson

Do schools kill creativity? Link: https://www.ted.com/talks/sir_ken_robinson_do_schools_kill_creativity Speaker: Sir Ken Robinson Date: February 2006 文章目录 Do schools kill creativity?IntroductionVocabularySummaryTranscriptAfterword Introduction Sir…

[AI Google] 10个即将到来的Android生态系统更新

新的体验带来了更强的防盗保护、手表电池寿命优化,以及对电视、汽车等的娱乐功能改进。 昨天,我们分享了Android如何以人工智能为核心重新构想智能手机。今天,我们推出了Android 15的第二个测试版,并分享了更多我们改进操作系统的…

webSocket+Node+Js实现在线聊天(包含所有代码)

这篇文章主要介绍了如何使用 webSocket、Node 和 Js 实现在线聊天功能。 重要亮点 💻 技术选型:使用 Node.js 搭建服务器,利用 Express 框架和 Socket.io 库实现 WebSocket 通信。 📄 实现思路:通过建立数组存储聊天…

Linux 软件包管理器 yum的下载、功能介绍及使用

🪐🪐🪐欢迎来到程序员餐厅💫💫💫 主厨:邪王真眼 主厨的主页:Chef‘s blog 所属专栏:青果大战linux 总有光环在陨落,总有新星在闪烁 Linux下的三种软件安装方…

项目如何有效做资源管理?易趋项目管理软件让资源管理可视化

在项目管理的过程中,有效的资源管理能够确保资源得到合理的分配和使用,避免资源的浪费和冗余,进而提高整体工作效率、确保项目的成功;同时降低组织的运营成本。 但在项目推进过程中,项目经理总会面临各种资源管理的难…

MyBatis从入门到“入土“

💕喜欢的朋友可以关注一下,下次更新不迷路!💕(●◡●) 目录 一、Mybatis为何物?👌 二、快速入门🤣 1、新建项目😊 2、数据库建表😊 3、导入依赖的jar包😊…

vue3 路由跳转 携带参数

实现功能:页面A 跳转到 页面B,携带参数 路由router.ts import { createRouter, createWebHistory } from "vue-router";const routes: RouteRecordRaw[] [{path: "/demo/a",name: "aa",component: () > import(&quo…

【软件设计师】2018年的上午题总结

2018 2018上半年2018下半年 2018上半年 1.小阶向大阶对齐 2.吞吐率是最长流水段操作时间的倒数 3.ssh的端口号是22 4.s所发送的信息使用s的私钥进行数字签名,t收到后使用s的公钥验证消息的真实性 5.数据流分析是被动攻击方式 6.《计算机软件保护条例》是国务院颁布…

226.翻转二叉树

翻转一棵二叉树。 思路: 指针做交换 用递归(前序or后序,中序不行) 前序:中左右 遍历到“中”的时候,交换它的左右孩子 然后分别对它的左孩子和右孩子使用“交换函数”(定义的)&a…

【论文阅读】使用深度学习及格子玻尔兹曼模拟对SEM图像表征粘土结构及其对储层的影响

文章目录 0、论文基本信息1、深度学习2、可运行程序—Matlab3、深度切片3、LBM模拟4、局限性 0、论文基本信息 论文标题:Characterizing clay textures and their impact on the reservoir using deep learning and Lattice-Boltzmann simulation applied to SEM i…

Python-温故知新

1快速打开.ipynb文件 安装好anaconda后,在需要打开notebook的文件夹中, shift键右键——打开powershell窗口——输入jupyter notebook 即可在该文件夹中打开notebook的页面: 2 快速查看函数用法 光标放在函数上——shift键tab 3...

CGAN|生成手势图像|可控制生成

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍦 参考文章:TensorFlow入门实战|第3周:天气识别🍖 原作者:K同学啊|接辅导、项目定制 CGAN(条件生成对抗网络&#xf…

【Crypto】Rabbit

文章目录 一、Rabbit解题感悟 一、Rabbit 题目提示很明显是Rabbit加密,直接解 小小flag,拿下! 解题感悟 提示的太明显了

二分查找

题目链接 题目: 分析: 如果按照从头到尾的顺序一次比较, 每次只能舍弃一个元素, 效率是非常低的, 而且没有用到题目的要求, 数组是有序的因为数组是有序的, 所以如果我们随便找到一个位置, 和目标元素进行比较, 如果大于目标元素, 说明该位置的右侧元素都比目标元素大, 都可…

一键恢复安卓手机数据:3个快速简便的解决方案!

安卓手机作为我们不可或缺的数字伙伴,承载着大量珍贵的个人和工作数据。然而,随着我们在手机上进行各种操作,不可避免地会遇到一些令人头痛的问题,比如意外删除文件、系统故障或其他不可预见的情况,导致重要数据的丢失…

汽车生产线中的工业机器人应用HT3S-PNS-ECS(EtherCAT/Profinet)协议转换通讯方案案例分析

汽车生产线中的工业机器人应用HT3S-PNS-ECS(EtherCAT/Profinet)协议转换通讯方案案例分析 ——北京中科易联科技有限公司供稿—— 一、摘要 随着工业自动化的快速发展,汽车生产线对工业机器人的依赖日益增加。HT3S-PNS-ECS作为工业机器人中的关键组件,其…

OpenFeign快速入门 替代RestTemplate

1.引入依赖 <!--openFeign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--负载均衡器--><dependency><groupId>org.spr…

重学java 38.创建线程的方式⭐

It is during our darkest moments that we must focus to see the light —— 24.5.24 一、第一种方式_继承extends Thread方法 1.定义一个类,继承Thread 2.重写run方法,在run方法中设置线程任务(所谓的线程任务指的是此线程要干的具体的事儿,具体执行的代码) 3.创建自定义线程…

响应式处理-一篇打尽

纯pc端响应式 pc端平常用到的响应式布局 大致就如下三种&#xff0c;当然也会有其他方法&#xff0c;欢迎评论区补充 将div height、width设置成100% flex布局 flex布局主要是将flex-wrap: wrap&#xff0c; 最后&#xff0c;你可以通过给子元素设置 flex 属性来控制它们的…

c4d云渲染是工程文件会暴露吗?

在数字创意产业飞速发展的今天&#xff0c;C4D云渲染因其高效便捷而备受欢迎。然而&#xff0c;随着技术应用的深入&#xff0c;人们开始关注一个核心问题&#xff1a;在享受云渲染带来的便利的同时&#xff0c;C4D工程文件安全吗&#xff1f;是否会有暴露的风险&#xff1f;下…