一个基于 laravel 和 amis 开发的后台框架, 友好的组件使用体验,可轻松实现复杂页面(附源码)
前言
随着互联网应用的发展,后台管理系统的复杂度不断增加,对于开发者而言,既要系统的功能完备,又要追求开发效率的提升。然而,传统的开发方式往往会导致大量的重复劳动,尤其是在构建复杂的管理页面时。有没有一款工具能够帮助我们简化这些繁琐的过程呢?
Owl Admin 正是为此而生。它是一款基于Laravel和Amis开发的后台框架,旨在通过友好的组件使用体验,让开发者能够快速搭建后台管理系统。
介绍
Owl Admin 是一个基于Laravel和Amis开发的后台框架,具有快速且灵活的特点。它通过JSON的方式在后端构建页面,减少了前端开发的工作量,从而提升了开发效率。此外,Owl Admin 还内置了代码生成器,即使是复杂的页面也能轻松实现。

主要功能
-
基础后台功能
-
用户管理
-
角色管理
-
权限管理
-
菜单管理
-
-
代码生成器
-
保存生成记录
-
导入/导出生成记录
-
可使用命令清除生成的内容
-
无需更改代码即可生成完整功能
-
-
Amis全组件封装
-
包含150多个组件,无需前端开发即可完成复杂页面
-
-
多模块支持
-
图形化扩展管理

特点
Owl Admin 的特点在于:
-
基于Amis的JSON页面构建:通过Amis的JSON描述文件在后端构建页面,大大减少了前端开发的工作量。
-
灵活的前后端分离架构:框架支持前后端分离设计,避免了因框架限制而导致的开发障碍。
-
强大的内置功能:提供用户管理、角色管理、权限管理、菜单管理等一系列基础后台功能。
-
代码生成器:内置代码生成器,帮助开发者快速生成功能模块,降低开发门槛。
技术架构
Owl Admin 采用了先进的技术架构,确保了其在性能、易用性等方面的优越表现。
部署方式
OwlAdmin 是 Laravel 的扩展包,在安装前请确保您熟悉 Laravel 的基本使用。
创建 Laravel 项目
composer create-project laravel/laravel example-app
配置数据库信息
在 <font style="color:rgb(44, 44, 54);">.env</font> 文件中配置数据库相关信息:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=owl_admin
DB_USERNAME=root
DB_PASSWORD=
如果您使用的是 Laravel 11 或更高版本,还需要执行:
php artisan install:api
获取 Owl Admin
composer require slowlyo/owl-admin
安装 Owl Admin
#先发布框架资源
php artisan admin:publish
# 执行安装 (可以在执行安装命令前在 config/admin.php 中修改部分配置)
php artisan admin:install
启动服务,访问 <font style="color:rgb(44, 44, 54);">/admin</font> 路由即可。
初始账号密码均为 <font style="color:rgb(44, 44, 54);">admin</font>。
开源协议
Owl Admin 是一个开源项目,遵循 MIT 开源协议,对商用友好,拿来即用。
即刻体验一波
Owl Admin 提供了丰富的功能,以下是一些功能展示:
用户管理
添加用户
编辑用户信息
删除用户

角色管理
创建角色
分配角色权限

权限管理
设置权限
管理权限分配

菜单管理
添加菜单项
编辑菜单项
删除菜单项

代码生成器
生成模型
生成控制器
生成视图

Amis组件封装
使用内置组件构建页面
无需前端开发

多模块支持
轻松管理多个模块

图形化扩展管理
直观管理扩展
结语
Owl Admin 以其高 效的开发体验和强大的功能,为后台管理系统的开发带来了极大的便利。无论是对于新手开发者还是经验丰富的工程师,都能从中受益匪浅。
如果你也希望能够提升开发效率,简化工作流程,那么Owl Admin 将是一个不错的选择。
源码:https://gitee.com/slowlyo/owl-admin
文档:https://doc.owladmin.com/guide/index
相关文章:
一个基于 laravel 和 amis 开发的后台框架, 友好的组件使用体验,可轻松实现复杂页面(附源码)
前言 随着互联网应用的发展,后台管理系统的复杂度不断增加,对于开发者而言,既要系统的功能完备,又要追求开发效率的提升。然而,传统的开发方式往往会导致大量的重复劳动,尤其是在构建复杂的管理页面时。有…...
HTML讲解(二)head部分
目录 1. 2.的使用 2.1 charset 2.2 name 2.2.1 describe关键字 2.2.2 keywords关键字 2.2.3 author关键字 2.2.4 http-equiv 小心!VS2022不可直接接触,否则!没这个必要,方源面色淡然一把抓住!顷刻炼化&#x…...
Linux(Ubuntu)(终端实现helloworld输出)
一、终端实现gcc编译 1.写好helloworld.h,helloworld.c,main.c后,打开终端,切换到保存这些文件的文件夹的目录,我把这些文件存放在helloworld的文件夹下,所以输入cd ~/helloworld 2.查看该目录下的文件&a…...
开源模型应用落地-qwen模型小试-调用Qwen2-VL-7B-Instruct-更清晰地看世界-集成vLLM(二)
一、前言 学习Qwen2-VL ,为我们打开了一扇通往先进人工智能技术的大门。让我们能够深入了解当今最前沿的视觉语言模型的工作原理和强大能力。这不仅拓宽了我们的知识视野,更让我们站在科技发展的潮头,紧跟时代的步伐。 Qwen2-VL 具有卓越的图像和视频理解能力,以及多语言支…...
【乐企-工具篇】有关乐企发票文件生成- OFD和PDF文件生成
有关乐企发票文件生成- OFD和PDF文件生成 本文主要是实现发票的OFD文件以及PDF文件的生成可以参考具体实现思路,具体情况需要根据自己业务进行改造! 具体的OFD文件模板可以从税局进行下载,下载之后放到resources资源目录下。 代码 package com.ruoyi.output.service.thi…...
llama网络结构及源码
目录 模型初始化 config lm_head transformer wte h rms_1/rms_2 attn c_attn c_proj 线性层mlp ln_f rope_cache mask_cache kv_caches tokenizer tokenizer初始化 tokennizer.encoder 位置编码和mask 确定最大文本长度 建立rope_cache 建立mask_cache …...
828华为云征文|Flexus云服务器X实例部署宝塔运维面板
本次华为云Flexus云服务器X实例部署宝塔运维面板教学,这次是推陈出新啊 之前的云耀云服务器L实例已经很不错了,大力赞叹华为云的 同时感谢华为云提供优惠卷,只能说白嫖真是太棒了 华为云近期正在筹办华为云828企业节活动,90款免…...
计算机网络 8.*结构化布线
第八章 结构化布线 第一节 结构化布线基础 一、认识结构化布线 1.定义:在建筑物或楼宇内安装的传输线路,是一个用于语音、数据、影像和其他信息技术的标准结构化布线系统。 2.任务:使语音和数据通信设备、交换设备和其他信息管理系统彼此相…...
c#的委托、事件
程序目的:实现对一个bool型变量的监视,当数据变化时,调用某一个函数,引申出委托、事件等基础概念。 方法一、在form1的类定义中,定义如下代码,这样定义是最直接的,也非常简单,没有涉…...
Day23笔记-Day21和Day22作业讲解单例类
Day22作业讲解 学生类Student:属性:学号,姓名,年龄,性别,成绩 班级类 Grade:属性:班级名称,班级中的学生 【使用列表存储学生】 方法:1.查看该班级中的所有学生的信息2.查看指定学号的学生信息3.查看班级中成绩不…...
k8s中的存储
目录 一 configmap 1.1 configmap的功能 1.2 configmap的使用场景 1.3 configmap创建方式 1.3.1 字面值创建 1.3.2 通过文件创建 1.3.3 通过目录创建 1.3.4 通过yaml文件创建 1.3.5 configmap的使用方式 1.3.5.1 使用configmap填充环境变量 1.3.5.2 通过数据卷使用c…...
【Linux进程控制】进程程序替换
目录 进程程序替换 替换函数 看现象 替换原理 多进程替换 exec*函数使用(部分),并且认识函数参数的含义 1.execl 2.execv 3.execvp 4.execvpe execlp 和execlpe 替换函数总结 进程程序替换 替换函数 有六种以exec开头的函数&am…...
02 ETH
以太坊与比特币有什么不同? 以太坊立足比特币创新之上,于 2015 年启动,两者之间有一些显著不同。 比特币就仅仅是比特币;以太坊包括以太币,以太币才是和比特币对等的存在。以太坊是可编程的,所以你可以在…...
web渗透—RCE
一:代码执行 相关函数 1、eval()函数 assert()函数 (1)原理:将用户提交或者传递的字符串当作php代码执行 (2)passby:单引号绕过:闭合注释;开启GPC的话就无法绕过(GPC就是将单引号转换为"反斜杠单引号"&a…...
HomeAssistant显示节假日
先看效果 步骤: 新建卡片时选择“Markdown 卡片”代码在文章最下方,当然你也可以自己修改 点击保存/完成 ### {% if now().hour > 6 and now().hour < 9 -%} 早上好, {%- elif now().hour > 9 and now().hour < 12 -%} 上午好…...
AI问答-HTTP:理解 Content-Disposition
本文背景 在下载arraybuffer文件时,想要获取文件名,这时引入本文内容Content-Disposition,我们在Content-Disposition获取到文件名就可以在下载后的文件以该文件名命名了。 一、简介 Content-Disposition是HTTP协议中的一个响应头字段&…...
kubernetes架构
kubernetes cluster由master和node组成,节点上运行着若干kubernetes服务Master节点: master是kubernetes cluster的大脑,运行着的Daemon服务包括kube-apiserver,kube-scheduler,kube-controller-manager,etcd和Pod网络…...
【隐私计算篇】中国剩余定理解释以及Paillier解密加速应用
1. 背景介绍 本篇主要关注中国剩余定理的原理以及在paillier同态加密系统中的应用。在很多工作中,都可以看到中国剩余定理的影子,特别是同态加密提升计算效率的优化工作中,将paillier与中国剩余定理进行结合,能够实现在加密状态下…...
保护您的隐私:隐藏 IP 地址的重要性
在当今的数字时代,我们的在线隐私和安全变得比以往任何时候都更加重要。浏览互联网时保护自己的一种方法是隐藏您的 IP 地址。 但是为什么要隐藏您的 IP 地址以及如何有效地做到这一点? 隐藏您的 IP 地址有助于保护您的在线匿名性。您的 IP 地址就像您的…...
nodejs 007:错误npm error Error: EPERM: operation not permitted, symlink
完整错误信息 npm error Error: EPERM: operation not permitted, symlink npm warn cleanup Failed to remove some directories [ npm warn cleanup [ npm warn cleanup C:\\Users\\kingchuxing\\Documents\\IPFS\\orbit-db-set-master\\node_modules\\ipfs-cli, npm…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
