记录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.mzph.cn/web/14318.shtml

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

相关文章

SkyEye对接CANoe:助力汽车软件功能验证

01.简介 CANoe(CAN open environment)是德国Vector公司专为汽车总线设计而开发的一款通用开发环境,作为车载网络和ECU开发、测试和分析的专业工具,支持从需求分析到系统实现的整个系统的开发过程。CANoe丰富的功能和配置选项被OE…

虚拟ECU:彻底改变汽车软件开发与测试

汽车开发领域有着垂直性较强的一系列需求,其中最为瞩目的需求之一就是对安全高效的软件测试方法的需求。传统的汽车开发偏向使用硬件原型与真实ECU进行软件测试,但由于硬件设备往往在开发周期的中后阶段才生产完成,给汽车开发带来了成本与时间…

电商内卷时代,视频号小店凭借一己之力“脱颖而出”

大家好,我是电商笨笨熊 今年618各大电商平台花样百出; 某宝更是直接取消了“预售”,从5月就开始进入618预热期; 不少玩家既开心又难过,市场如此内卷,618确实是个爆发期,但更多的需要不断压低…

Star CCM+分配零部件至区域后交界面丢失-更新找回

前言 在工程应用中,将零部件分配至区域后,一般常规的操作需要对交界面进行检查。偶尔会发现交界面丢失。遇到此类问题,在没有做其他操作前(比如画网格),可以选择先删除所有区域在重新分配至区域。若已经进…

基于SSM的大学生兼职管理系统

基于SSM的大学生兼职管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatis工具:IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面 企业界面 前台学生界面 管理员界面 摘要 随着大学生兼职市场的日益繁…

K8s 高级调度

文章目录 K8s 高级调度CronJobinitContainerTaint 和 Toleration污点(Taint)容忍(Toleration) AffinityNodeAffinityPodAnffinity 和 PodAntiAffinity 总结 K8s 高级调度 CronJob 在 k8s 中周期性运行计划任务,与 li…

【vue echart】完成一个简单echart图表+自适应

实现效果&#xff1a; html&#xff1a; <divref"echartOne"id"echartOne"style"width: 100%; height: 100%" ></div> js: getEchartOne() {let chart this.$echarts.init(this.$refs.echartOne);chart.setOption({title: {text:…

云原生|为什么服务网格能够轻松重塑微服务?一文讲清楚!

目录 一、概述 二、 设计 三、服务网格 四、总结 一、概述 容器化技术与容器编排推动了微服务架构应用的演进&#xff0c;于是应用的扩展与微服务的数量日益增加&#xff0c;新的问题随之而来&#xff0c;监控服务的性能变得越来越困难&#xff0c;微服务与微服务之间相互通…

Kafka-集群管理者(Controller)选举机制、任期(epoch)机制

Kafka概述 Kafka-集群管理者&#xff08;Controller&#xff09;选举机制 Kafka中的Controller是Kafka集群中的一个特殊角色&#xff0c;负责对整个集群进行管理和协调。Controller的主要职责包括分区分配、副本管理、Leader选举等。当当前的Controller节点失效或需要进行重新…

嵌入式实时操作系统笔记1:RTOS入门_理解简单的OS系统

今日开始学习嵌入式实时操作系统RTOS&#xff1a;UCOS-III实时操作系统 本次目标是入门RTOS&#xff0c;理解多任务系统...... 本文只是个人学习笔记&#xff0c;基本都是对网上资料的整合...... 目录 STM32裸机与RTOS区别&#xff1a; 裸机中断示例&#xff1a; RTOS对优先级…

Spring MVC/Web

1.Spring MVC 的介绍 Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;也是Spring框架的一部分。它提供了灵活可扩展的MVC架构&#xff0c;方便开发者构建高性能的Web应用程序&#xff0c;并与 Spring 生态系统无缝集成。 2.MVC 设计模式 MVC&#xff08;Model…

设计模式—23种设计模式重点 表格梳理

设计模式的核心在于提供了相关的问题的解决方案&#xff0c;使得人们可以更加简单方便的复用成功的设计和体系结构。 按照设计模式的目的可以分为三大类。创建型模式与对象的创建有关&#xff1b;结构型模式处理类或对象的组合&#xff1b;行为型模式对类或对象怎样交互和怎样…

研发机构大数据迁移如何保障敏感数据不泄露

随着云计算和大数据技术的飞速进步&#xff0c;越来越多的企业正试图通过数据迁移来提升IT基础设施的效率&#xff0c;减少成本&#xff0c;并增强业务的灵活性。但是&#xff0c;这一过程并非没有它的挑战&#xff0c;尤其是在数据安全方面。数据在转移过程中可能会遭遇黑客攻…

解决深度确定问题:使用不相交集合森林

解决深度确定问题&#xff1a;使用不相交集合森林 引言不相交集合森林&#xff08;DSF&#xff09;基础按秩合并与路径压缩深度确定问题的解决方案实现MAKE-TREE修改FIND-SET实现FIND-DEPTH实现GRAFT分析最坏情况运行时间结论参考文献 引言 在计算机科学中&#xff0c;树结构是…

时空扭曲:重温相对论的终极挑战,探寻真理的脚步

大家都知道&#xff0c;相对论是爱因斯坦提出的划时代理论&#xff0c;为人类认知时空和引力做出了革命性贡献。但这个理论真的万无一失吗&#xff1f;近日&#xff0c;一项新研究提出了测试时间扭曲的新方法&#xff0c;或许能让我们重新审视相对论在宇宙大尺度上的适用性。 时…

HTML5好看的通用网站模板源码

文章目录 1.设计来源1.1 主界面1.2 模板菜单1 界面1.3 模板菜单2 界面1.4 模板菜单3 界面1.5 下拉菜单1 界面1.6 下拉菜单2 界面1.7 模板菜单4 界面1.8 模板菜单5 界面1.9 界面底部 2.效果和源码2.1 动态效果2.2 源码目录2.3 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址…

Python 造数据神器Faker

大家好&#xff0c;在编写代码过程中&#xff0c;我们经常需要一些假数据来进行测试或者演示。手动创建这些数据不仅耗时&#xff0c;而且容易出错。幸运的是&#xff0c;Python有一个非常有用的库叫做Faker&#xff0c;它可以生成各种类型的假数据&#xff0c;从名字、地址到公…

day 38 435.无重叠区间 763.划分字母区间 56. 合并区间 738.单调递增的数字 968.监控二叉树

435.无重叠区间 思路 为了使区间尽可能的重叠所以排序来使区间尽量的重叠&#xff0c;使用左边界排序来统计重叠区间的个数与452. 用最少数量的箭引爆气球恰好相反。 代码 class Solution {public int eraseOverlapIntervals(int[][] intervals) {Arrays.sort(intervals,(a,…

如何在cPanel面板中开启盗链保护

本周有一个客户&#xff0c;购买Hostease的主机&#xff0c; 客户购买的是Linux虚拟主机&#xff0c;带cPanel面板的。询问我们的在线客服&#xff0c;如何可以防止他的网站上的图片不被盗用。cPanel的盗链保护功能可以帮助客户防止图片被盗链。 盗链&#xff08;Hotlinking&a…

呆马科技----构建智能可信的踏勘云平台

近年来&#xff0c;随着信息技术的快速发展&#xff0c;各个行业都在积极探索信息化的路径&#xff0c;以提升工作效率和服务质量。智慧踏勘云平台是基于区块链和大数据技术构建的全流程智慧可信踏勘解决平台。平台集远程视频、数据显示、工作调度、过程记录为一体&#xff0c;…