go-sword(利刃)是一款基于go语言的可视化web管理后台生成工具(代码片段)

osinger osinger     2023-03-21     524

关键词:

Go-sword ???

Go-sword(利刃)是一款基于Go语言的可视化web管理后台生成工具

技术图片
技术图片
技术图片
技术图片
技术图片

线上体验

生成工具demo

http://go-sword.osinger.com/

创建的项目demo

http://go-sword-app.osinger.com/

目标就是快速的创建CRUD可视化的后台

根据MySQL的表结构,创建完整的管理后台界面,开发者无需再重复手动的创建具有CRUD能力的页面
只需要点击按钮即可生成完整的管理后台

技术图片

特点

  1. 一键生成,无需写一行代码
  2. 支持增加、删除、编辑、列表、批量删除、分页、检索
  3. 页面基于Vue.js + iView
  4. 针对每个数据表都生成了单独的逻辑文件,开发者可以求使用Vue或者iView来实现功能更加丰富的页面

技术图片

开始

安装

go get -u  github.com/sunshinev/go-sword

编译

go build

安装完成后,确保go-sword命令在GOPATH/bin目录下,可执行

启动服务

go-sword -db db_database -password db_password -user db_uesr -module module_name

例如:go-sword -db blog -password 123456 -user root -module go-sword-app

以上命令,就是连接数据库blog,用户名root,密码12345,在go-sword命令的当前目录下创建项目go-sword-app

启动成功的提示

Go-Sword will create new project named go-sword-app in current directory

[Server info]
Server port : 8080
Project module : go-sword-app

[db info]
MySQL host : localhost
MySQL port : 3306
MySQL user : root
MySQL password : 123456

Start successful, server is running ...
Please request: http://localhost:8080

参数说明

+---------------------------------------------------+
|                                                   |
|            Welcome to use Go-Sword                |
|                                                   |
|                Visualized tool                    |
|        Fastest to create CRUD background          |
|      https://github.com/sunshinev/go-sword        |
|                                                   |
+---------------------------------------------------+
Usage of go-sword:
  // 要连接的数据库信息
  -db string
      MySQL database
  -host string
      MySQL Host (default "localhost")
  // 重要:module参数单独作解释
  -module string
      New project module, the same as  ‘module‘ in go.mod file.   (default "go-sword-app/")
  // go-sword 服务启动的默认端口
  -p string
      Go-sword Server port (default "8080")
  -password string
      MySQL password
  -port int
      MySQL port (default 3306)
  -user string
      MySQL user

参数: -module

-module 参数是代表要创建的项目名称,同时也是新项目go.mod文件中的module字段的值,这点请务必保持一致。

注意

新项目会在运行go-sword命令的当前目录下,直接创建module目录,作为新项目

开始使用服务

Start successful, server is running ...
Please request: http://localhost:8080

根据服务启动的提示,直接点击http://localhost:8080即可进入web的可视化工具页面

技术图片

重要:页面功能介绍

  1. 首先下拉选择MySQL 的表格,然后点击Preview按钮,即可渲染出需要创建的文件
  2. 首次创建新项目文件需要点击select all全部选择,首次创建包含了项目启动必需的核心文件
  3. 点击Generate按钮,既可以看到提示文件创建成功
  4. 到目前为止,我们的后台已经创建成功了

注意:

  1. 首次创建,文件需要全部选择
  2. 如果创建第二个管理页面,那么可以只选择 select diff & new按钮,然后点击Generate按钮
  3. 每次生成新的管理界面后,请重启新创建的项目

开始使用新项目

进入到我们新创建的项目目录

?  test tree -L 2
.
└── go-sword-app
    ├── controller
    ├── core
    ├── go.mod
    ├── go.sum
    ├── main.go
    ├── model
    ├── resource
    ├── route
    └── view

比如说我们,刚刚是在test目录运行的go-sword命令,创建的项目就是test/go-sword-app

我们进入test/go-sword-app目录下按照以下命令启动项目

初始化新项目 go mod init

利用go mod初始化项目,这里的module就是我们前面讲到的要与项目名称保持一致!!

go mod init module

启动项目

go run main.go

然后会看到下面的提示,点击http://localhost:8082既可以进入后台管理界面

Enjoy your system ^ ^
Generated by Go-sword
https://github.com/sunshinev/go-sword

[Server info]
Server port : 8082

[db info]
MySQL host : localhost
MySQL port : 3306
MySQL user : root
MySQL password : 123456

Start successful, server is running ...
Please request: http://localhost:8082

管理后台效果

  1. 后端报错提醒
  2. 增加、删除、编辑、列表、批量删除、分页、检索

技术图片

一些问题

  1. 因为golang的map结构遍历乱序的问题,部分页面输出的字段顺序不能保证和数据库字段顺序一致
  2. 关于module的参数,可能还会有更好的解决方案
  3. 没有提供用户注册、登录的能力,这也不符合初衷,最开始就是想做的更加基础,快速创建页面
  4. 生成的项目代码,还有很大的优化空间

页面功能展示

列表

技术图片

删除

技术图片

预览

技术图片

编辑

技术图片

Go-sword fork

如果想要自定义的话,那么需要注意,Go-sword 项目可以打包成一个那单独的命令来执行,因为将所有的静态文件也进行了打包

静态文件压缩命令如下:

go-bindata -o assets/resource/dist.go -pkg resource resource/dist/...
go-bindata -o assets/stub/stub.go -pkg stub stub/...
go-bindata -o assets/view/view.go -pkg view view/...

unity一款基于ugui的数据可视化图表插件(xcharts2.0)。(代码片段)

...harts是一款基于UGUI的功能强大、易用、参数可配置的数据可视化图表插件。支持折线图、柱状图、饼图、雷达图、散点图、热力图、仪表盘、环形图、极坐标、水位图、K线图等常见图表。        下载地址:GitHub-monitor139... 查看详情

freemarker生成go语言

...生成工具(四)数据库操作(五)封装填充数据FreeMarker是一款模板引擎:即一种基于模板和动态数据,用于输出文本的通用工具。FreeMarker模板使用FreeMarkerTemplateLanguage(FTL)编写,它是一种简单的、专用的语言。代码生成器的... 查看详情

基于php语言laravel9+layui数据可视化平台(代码片段)

项目介绍一款PHP语言基于Laravel9.x、Layui、MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,框架自... 查看详情

持续集成及部署利器:go(不要和google的编程语言go混淆了!)

Go是一款先进的持续集成和发布管理系统,由ThoughtWorks开发。(不要和Google的编程语言Go混淆了!)其前身为CruiseControl,是ThoughtWorks在做咨询和交付交付项目时自己开发的一款开源的持续集成工具。后来随着持续集成及持续部署的... 查看详情

如果要开发pc程序,开发的是一款可视化的开发工具,学啥编程语言比较好?

如果要开发pc程序,开发的是一款可视化的开发工具,学什么编程语言比较好?对各个版本的WINDOS操作系统的支持性好,最好是可视化编程,如果不是也没关系,学习时期较短些(也就是易学易入门,只是相对而言)非编程篇/可直... 查看详情

超级好用的java数据可视化库:tablesaw

...源项目》系列,今天给大家带来一款基于Java语言的数据可视化库开源项目——TablesawTablesaw是一款Java的数据可视化库。它主要包括两部分:一部分是数据解析库,另一部分是数据可视化库。数据解析库 查看详情

基于php语言laravel+layui数据可视化平台(代码片段)

项目介绍一款PHP语言基于Laravel5.8、Layui、MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,框架自... 查看详情

基于php语言thinkphp6+layui数据可视化平台(代码片段)

项目介绍一款PHP语言基于ThinkPhp6.x、Layui、MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,框架自... 查看详情

基于php语言laravel9+vue+elementui数据可视化开发框架

项目介绍一款PHP语言基于Laravel9.x、Vue、ElementUI等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,目前... 查看详情

go语言之map

Map是一种无序的键值对的集合,它主要通过Key来快速检索数据,Go语言中用它来提供哈希表的功能。Map是一种数据结构,它是一个集合,用于存储一系列无序的键值对。它是基于键存储的,键就像一个索引一样,这也是Map强大的... 查看详情

python和go语言有啥区别?哪个更有优势?

...指示代码块。Go的语法基于打开和关闭括号。2、范例Python是一种基于面向对象编程的多范式,命令式和函数式编程语言。它坚持这样一种观点,即如果一种语言在某些情境中表现出某种特定的方式,理想情况下它应该在所有情境... 查看详情

go语言和scala语言对比(代码片段)

...。下面的回答是基于我编写大规模的软件的经验得出。Go是一种开发模式严格固定,并且以最小代码量编译成机器代码的语言。Scala是一种拥有多种特性并运行在JVM上的,复杂的、学术性的、功能性的、面向对象的沙箱语言。对... 查看详情

不写代码轻松实现数据可视化,这款基于springboot的神器,简直绝了(代码片段)

...essIntelligence)工具?BI工具简单来说就是一种数据可视化工具。今天给大家推荐一款开源的数据可视化工具DataEase,基于SpringBoot实现,集成ApacheDoris+Kettle,可支持超大数据量秒级查询,希望对大家有所帮... 查看详情

blender是一款免费开源的3d创作套件

...款免费开源的3D创作套件。使用Blender,你可以创建3D可视化效果 查看详情

又一款基于vue的数据可视化组件库,github上star超1.4k,太酷炫

参考技术A组件库名称:DataV项目地址:https://github.com/DataV-Team/DataV光看截图就知道太酷炫了,而且根本不需要担心拿在手里会不会用,官方的文档也是非常详细非常多的组件可以选择,但是相对于收费版的阿里云datav还是很不错... 查看详情

influxdb引擎原理

引言InfluxDB是一款Go语言写的时序数据库。时序数据库主要用于存储基于时间序列的指标数据,例如一个Web页面的PV、UV等指标,将其定期采集,并打上时间戳,就是一份基于时间序列的指标。时序数据库通常用来配合前端页面来... 查看详情

nuclei——一款基于yaml语法模板的快速漏洞扫描工具(代码片段)

一、工具简介1.简介Nuclei是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。目前该项目在Github上已经有6.6k个stars。官网:https://nuclei.projectdiscovery.ioNucle... 查看详情

python是一款解释型语言

Q:Python是一款解释型语言 A:https://blog.csdn.net/u012184539/article/details/81348780 计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须... 查看详情