当前位置: 首页 > news >正文

thinkphp6.1~8.0 快速创建CRUD

GIT 源码 TINKPHP

快速创建模型CRUD源码

import os
import tkinter as tk
from tkinter import messagebox#转小写
def toLowerCase(str):""":type str: str:rtype: str"""return "".join(chr(ord(c) + 32) if 65 <= ord(c) <= 90 else c for c in str)
#转表格式
def castTable(table):input_str = tableoutput_str = ""for char in input_str:if char.isupper():output_str += "_" + char.lower()else:output_str += charoutput_str = output_str.lstrip("_")return output_str
#转换驼峰模式
def castHump(table):input_str = tableoutput_str = "".join(word.capitalize() for word in input_str.split("_"))return output_str
#模型修改
def createModel(name):current_dir = os.getcwd()model=current_dir+"\\"+"app\model\\"+name+"Model.php"lines=[]f = open(model,"r",encoding="utf-8")n=0for line in f.readlines():lines.append(line)if n==12:table="    protected $name = '"+castTable(name)+"';"+"\n"lines.append(table)n+=1s=''.join(lines)f=open(model,'w+',encoding='utf-8')f.write(s)f.close()
#控制器修改
def createController(name):current_dir = os.getcwd()controller=current_dir+"\\"+"app\controller\\"+name+".php"lines=[]f = open(controller,"r",encoding="utf-8")n=0controllLine=0for line in f.readlines():lines.append(line)if n==5:table="use app\service\\"+name+"Service;"+"\n"lines.append(table)n+=1if line.find("//")>0:controllLine+=1if line.find("//")>0 and controllLine==1:#index方法index="       return "+name+"Service::index($request->param());"+"\n"lines.append(index)if line.find("//")>0 and controllLine==2:#create方法create="       return "+name+"Service::create($request->param());"+"\n"lines.append(create)if line.find("//")>0 and controllLine==5:#edit方法edit="       return "+name+"Service::update($request->param());"+"\n"lines.append(edit)  if line.find("//")>0 and controllLine==7:#delete方法delete="       return "+name+"Service::delete($id);"+"\n"lines.append(delete)   s=''.join(lines)s=s.replace("index()", "index(Request $request)")s=s.replace("create()", "create(Request $request)")s=s.replace("edit($id)", "edit(Request $request)")f=open(controller,'w+',encoding='utf-8')f.write(s)f.close()
#服务修改
def createService(name):current_dir = os.getcwd()service=current_dir+"\\"+"app\service\\"+name+"Service.php"lines=[]f = open(service,"r",encoding="utf-8")n=0serviceLine=0end=0for line in f.readlines():lines.append(line)if n==3:table="use app\model\\"+name+"Model;"+"\n"lines.append(table)baseService="use app\BaseService;"+"\n"lines.append(baseService)n+=1if line.find("//")>0:serviceLine+=1if end==1:lines.append("    public static function index($data){"+"\n")lines.append("        return self::baseList(new "+name+"Model(),$data);"+"\n")lines.append("    }"+"\n")lines.append("    public static function create($data){"+"\n")lines.append("        return self::baseCreate(new "+name+"Model(),$data);"+"\n")lines.append("    }"+"\n")lines.append("    public static function update($data){"+"\n")lines.append("        return self::baseUpdate(new "+name+"Model(),$data);"+"\n")lines.append("    }"+"\n")lines.append("    public static function delete($data){"+"\n")lines.append("        return self::baseDelete(new "+name+"Model(),$data);"+"\n")lines.append("    }"+"\n")end=2if line.find("//")>0 and serviceLine==2:end=1s=''.join(lines)s=s.replace("\\think\\Service", "BaseService")f=open(service,'w+',encoding='utf-8')f.write(s)f.close()#创建路由
def createRoute(name):current_dir = os.getcwd()route=current_dir+"\\"+"route\\app.php"lines=[]f = open(route,"r",encoding="utf-8") name=name[0].lower() + name[1:]for line in f.readlines():if line.find("结尾符")>0:lines.append("Route::post('"+name+"/list', '"+name+"/index');"+"\n")lines.append("Route::post('"+name+"/create', '"+name+"/create');"+"\n")lines.append("Route::post('"+name+"/edit', '"+name+"/edit');"+"\n")lines.append("Route::post('"+name+"/delete', '"+name+"/delete');"+"\n")lines.append("//结尾符用作快速创建路由"+"\n")else:lines.append(line)s=''.join(lines)f=open(route,'w+',encoding='utf-8')f.write(s)f.close()
def button_click():input_text = entry.get()#转驼峰input_text =castHump(input_text)current_dir = os.getcwd()#进入根目录os.system("cd "+ current_dir)#表名#table="Test"#执行命令commandController="php think make:controller app\controller\\"+input_textstatus=os.system(commandController)commandModel="php think make:model app\model\\"+input_text+"Model"statusModel=os.system(commandModel)commandService="php think make:service app\service\\"+input_text+"Service"statusService=os.system(commandService)createModel(input_text)createController(input_text)createService(input_text)#路由接口createRoute(input_text)messagebox.showinfo("提示", "执行完成")       
# 创建主窗口
root = tk.Tk()
root.geometry("423x131")
root.title("快速创建模型")# 创建输入框
entry = tk.Entry(root)
entry.pack()# 创建按钮
button = tk.Button(root, text="点击", command=button_click)
button.pack()# 运行主循环
root.mainloop()

http://www.lryc.cn/news/317633.html

相关文章:

  • MySQL的常用函数
  • Android Gradle 开发与应用 (五) : 基于Gradle 8.2,创建Gradle插件
  • 中文在职博士|中国社科院-新加坡社科大学(公立大学)工商管理博士
  • 前端性能优化终极指南
  • 基于Logstash由SQLServer向Elasticsearch同步数据: logstash配置文件
  • sqllab第八关通关笔记
  • unity text 文本符号显示问题与打字机效果的结合
  • Netty架构详解
  • Unity自带的WebSocket使用说明
  • 【Web】浅聊XStream反序列化之SortedSetTreeMap利用链
  • HTML CSS学习
  • MySQL的事务隔离是如何实现的?
  • STM32电源及时钟介绍
  • 使用公式在Excel中指定列值的变化实现自动间隔着色(不是按照固定的行数)
  • 蚓链给传统供应链的数字化解决方案会带来什么价值呢?
  • 有来团队后台项目-解析8
  • vs2022的下载及安装教程(Visual Studio 2022)
  • BFS(宽度优先搜索)C++(Acwing)
  • 信息收集:端口扫描原理,端口扫描分类,端口扫描工具,手动判断操作系统,操作系统识别工具
  • 【Tauri】(5):本地运行candle和 qwen 大模型,并测试速度
  • 基于udp协议的cs网络通信代码(echo版+命令行输入版+执行指令版),netstat指令
  • centos7网络命令:ping、dig、nsloopup、tcpdump
  • Excel判断CD两列在EF两列的列表中是否存在
  • 基于斑翠鸟优化算法(Pied Kingfisher Optimizer ,PKO)的无人机三维路径规划(MATLAB)
  • 同程旅行前端面试汇总
  • 小美的平衡矩阵_dp思路
  • json展示curl 请求接口返回结果
  • 2024 年排名前 5 名的 Mac 数据恢复软件分享
  • 请描述一下Spring MVC的工作流程。在Spring MVC中,DispatcherServlet的作用是什么?
  • 2023年终总结——跌跌撞撞不断修正