现在的admin都是带有非常复杂的前端UI的项目, django是因为有内置模板引擎+ORM的加持才能做到.

大部分的go框架,比如gin是不带orm和模板引擎的,所以在这种情况下是比较难出一个让大家一起信服的admin后台的.

以下是2023-08-17更新:

我们基于这个技术,实现了一个headless cms restsend/restcontent 还有很多文档还没写

但是确实基于admin的机制实现了一个cms

给你们看看图

dashboard
列表显示效果可以定制,过滤规则都是后端配置
连图片都可以换个样式

过程中遇到了很多问题,主要是go的反射能力差点,导致数据转化容易出现问题

不过至少能回答问题,我们基于go实现了一个高定制能力的admin后台

有兴趣可以去了解看代码和提issue

以下是2023-07-05更新:


我们在项目开发过程中,基于gorm封装了一个简单的CURD的接口,然后发现项目发布后,仍然需要做一个Admin后台,也考虑过用 vue实现一个admin面板,但是发现项目多了之后,vue的项目就很难复用,很多衍生的项目只是想要定制某个数据或字段的UI,每个项目都clone UI反而是一个负担,没有把go的包管理优势用起来。

于是我们参考Django设计了一个新的Admin机制,基于gorm+gin 实现了一个可以扩展UI和功能。我们大概有5-6个项目依赖了这个基础库,每个项目可以定制自己的UI控件和显示的布局,整体尽量复用基础的代码库

考虑到admin的UI是可以比较固定流程,并且项目之间复用要求比较高,用Alpine做了一个简单的尝试,UI我们没有选择用VUE。

UI开发不需要学习npm/vue/vite这些对后端工程师不友好的知识技能,缺点就是前端开发体验倒退了,算是一个尝试吧。 代码是开源的,欢迎大家来star或者提issue, 后续我们的headless cms也会开源

给你们看看效果:

内置的用户管理
根据后端的业务特点,自定义控件,比如密码在后端是hash存储, 修改逻辑就要定制
一个headless cms的衍生UI, 布局和部分控件都是Alpine实现