作者:不吃西红柿
简介:CSDN博客专家、蓝桥签约作者、大数据领域优质创作者。
【创作不易,求点赞、求收藏】
一、缘起
不日前,有粉丝找到我,让我帮着做个: 教师管理系统
由于种种借口,我当时把问题交给群友去解决了.....
思来想去,越想越内疚,于是就请教了经常做私活的小伙伴。
必须分享给更多的小伙伴~
二、揭开面纱
1.先来看看官方介绍:
【无远开发平台】 专业的一站式开发平台:写 SQL、做配置,即可快速完成系统开发,并且获得能直接部署在私有环境的应用程序。极大降低开发、运维、迭代成本。简单、直观、高效、强大!!
经过1天的试用,总结来看,主要有以下几个用处吧:
1、免费(免费的社区版,个人可以随便搞起)
2、会写SQL、页面配置一下,就可完成一套系统的开发(教务管理系统,ERP系统)
3、私有环境部署(在电脑安装个应用程序,即可在网页或手机app,提供服务)
4、开发、运维、迭代成本很低。(我再也不拒掉私活了,呜呜u)
2.为啥子这么厉害?
无远开发平台官方是这样说(chui)的:
- 丰富的组件库和便捷的复用机制,彻底解放您的生产力。
- 完备的建模机制,从容解构各类复杂业务。
- 支持与其他系统账套、接口无缝对接,为您的事业提供无限的扩展能力。
- 精准的权限控制设计,角色职能一清二楚。
- 超高性能,单机(2核 CPU, 4G 内存)
- 每秒响应 500 余次,轻松应付千万日PV。
- 源码交付,让您完全自主掌握项目。
看了看,确实挺多的:
神器官网:https://wuyuan.io/tutorials
3.官方案例:会议室系统
ps. 官方这个样例,看着还挺炫酷,我也去搞一个试试。
三、实践
实践是检验真理的唯一标准。 -- 邓
看着倒是花里胡哨,西红柿决定亲自试用一下,体验一下好不好用,能不能帮粉丝解决问题。
领取任务:在mac自建一套【学员管理系统】
官网的【快速上手】操作指南
0. 创建项目
注册账号,进入首页点击页面菜单,进入我的项目。
点击【添加我的第一个项目】按钮。
创建完成之后,选中该项目并点击进入开发工作台
,开启我的开发之旅。
1. 熟悉工作台
工作台分为三个部分:页面管理及开发区、角色管理区、系统全局配置区
- 页面管理及开发区 - 负责业务系统页面的开发。
- 角色管理区 - 负责业务系统的角色配置及相关访问权限管理。
- 全局配置区 - 负责设置业务系统运行的一些参数或者选项。
2. 准备数据库
2.1 创建业务表
首先需要自行准备好用于开发的 mysql 数据库,然后执行下面的建表脚本。在本例中,我们创建一张学生信息表
和省份表
,来完成学籍管理的相关逻辑。为方便演示,我们也插入一些学生数据和省份数据。
贴心,官网的入门手册里,连建表语句都准备好了。
/* 学生表 */
CREATE TABLE `student`
(
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增流水号',
`student_no` CHAR(10) NOT NULL UNIQUE COMMENT '学号由4位年份+2位院系号+2位班级号+2位班内号 组成',
`name` VARCHAR(20) NOT NULL COMMENT '姓名',
`gender` CHAR(1) COMMENT '性别, F 表示女,M 表示男',
`birthday` DATE COMMENT '出生日期',
`province_code` VARCHAR(10) COMMENT '籍贯省份代码,外键来自 province.code',
`address` VARCHAR(255) COMMENT '家庭住址',
INDEX(`student_no`), INDEX(`name`),
PRIMARY KEY (`id`)
);
/* 省份表 */
CREATE TABLE `province` (
`code` CHAR(6) COMMENT '省份编码',
`province` CHAR(12) COMMENT '省份名称',
INDEX(`province`),
PRIMARY KEY (`code`)
);
/* 学生数据 */
INSERT INTO `student`(`student_no`,`name`,`gender`,`birthday`,`province_code`,`address`)
VALUES('2016335117', '张三', 'M', '1998-05-12', '330000', '丽水市大洋路');
INSERT INTO `student`(`student_no`,`name`,`gender`,`birthday`,`province_code`,`address`)
VALUES('2016335118', '李四', 'M', '1996-07-22', '330000', '杭州市老余杭');
INSERT INTO `student`(`student_no`,`name`,`gender`,`birthday`,`province_code`,`address`)
VALUES('2016335119', '王五', 'F', '1997-01-19', '310000', '上海市外高桥');
/* 插入省份数据 */
INSERT INTO `province` (`code`, `province`) VALUES ('110000', '北京市');
INSERT INTO `province` (`code`, `province`) VALUES ('120000', '天津市');
INSERT INTO `province` (`code`, `province`) VALUES ('130000', '河北省');
INSERT INTO `province` (`code`, `province`) VALUES ('330000', '浙江省');
INSERT INTO `province` (`code`, `province`) VALUES ('310000', '上海市');
2.2 让 Enhancer 工作台连接数据库
在工作台选择 全局配置
-->数据库
-->连接
,配置数据库,以便 Enhancer 工作台能连接到。
注意
1. 如果数据库处于公共网络,但是对来访 IP 做了访问限制,请 ping data-bridge.wuyuan.io 域名,并将获得的 IP 地址添加到数据库信任中,以此允许 Enhancer 平台能连通数据库。
西红柿用来指定mysql的ip白名单语句。
GRANT ALL ON *.* to root@'192.168.1.4' ;
@后面的是指定白名单的ip
2. 如果数据库处于局域网络,或者 Enhancer 无法连接到数据库,那么需要在本地机器架设【数据桥】。
数据桥安装过程
- 第一步: 安装 Node.js。注意:Windows 用户请按照默认安装在 c 盘。
- 第二步: 打开终端或者命令窗口,执行指令
npm install -g enhancer-data-bridge
(可能需要管理员权限)。如果遇到网络不通的情况,则使用国内镜像安装:npm install -g enhancer-data-bridge --registry=https://r.cnpmjs.org/
。 - 第三步: 在终端或者命令窗口执行指令
data-bridge start --port 5312
启动桥。
3. 不同数据库默认监听的端口号不同:mysql 为 3306,mssql 为 1433,oracle 为 1521,配置时需要注意。
3. 开发页面
在本例中,我们将完成对学生信息表
的查询和修改功能。
3.1 创建页面
点击左测菜单上面添加页面
按钮,然后右键编辑菜单节点,输入 学生信息管理
详细过程官网有操作指引,西红柿已经操作一遍了,按说明一步步来就行:
https://assets.wuyuan.io/enhancer/tutorials/1.1.0/zh-cn/getting-started/page-dev-1.html
4. 创建角色并授权
在最终的生产环境中,不同的角色登录系统之后具有不同的页面访问权限。
西红柿给大家打个例子:老师登录系统有编辑管理的权限(增删改查);而学生(一般用户)只有查的权限
4.1 创建角色
打开角色管理
区,点击 +
添加一个 教务长
角色。
这里起名,我偏不叫“教务长”,我叫他“管理员”。
4.2 为角色授权可访问的页面
选中教务长
角色并在右侧勾选该角色可访问的页面。
5. 配置登录
5.1 用户登录配置
首先,在业务数据库中,需要创建一张用户表,包含可作为登录校验的账号信息,执行如下 SQL:
CREATE TABLE userinfo (
user_id VARCHAR(128) NOT NULL, -- 用户登录 ID
user_name VARCHAR(20) NOT NULL, -- 用户名
user_roles VARCHAR(40) NOT NULL, -- 用户角色,包含了 在第 4 节中创建的角色ID,如果有多个角色,使用 `,` 隔开。
password VARCHAR(32) NOT NULL, -- 登录密码
/*
-- 可根据业务需要添加其它字段
*/
INDEX(user_name),
PRIMARY KEY (user_id)
);
-- 插入一条测试数据
INSERT INTO userinfo(user_id, user_name, user_roles, password)
VALUES('test', '赵钱孙', 'provost, admin', md5(123456) /*此处密码,选用合适的数据库 Hash 函数设置 */ );
【注意】用户表的角色字段 user_roles 包含的值应是【工作台-->角色管理】中定义的角色 ID,不是角色名,多个id用逗号分隔。否则无法正确匹配可见菜单。
然后,打开 全局配置
--> 用户登录
--> 登录校验函数
配置面板,选中 使用用户表
,设置登录校验字段的映射关系,如下图:
配置完毕之后可以点击【预览登录页面】
5.2 其他配置
除登录配置之外,我们可以在发布之前为业务系统设定一些配置项,比如启用验证码登录、设置首选皮肤、修改背景图片等。
自定义logo,比如这个样十二的:
6. 发布项目
发布项目需要返回到我的项目,在 我的项目
列表中选中 学籍管理系统
, 然后切换到 发布管理
选项卡。
点击 现在发布
按钮,进入项目发布页面。
填写完发布单之后点击 发布按钮
,进入发布详情页。
等待后台打包完成之后,可以点击 下载
按钮获得应用程序安装包。
7.部署项目
GNU/Linux/Mac 环境下部署
第一步 安装 Node.js 环境
- 从 Nodejs 官网 下载的安装包,按照向导或参考网络资料安装。
第二步 安装 Redis 缓存服务
- 执行
wget http://download.redis.io/releases/redis-4.0.8.tar.gz
下载。备选下载地址 - 执行
tar -xzf redis-4.0.8.tar.gz
解压。 - 执行
cd redis-4.0.8 & make
进入解压根目录并且编译。 - 执行
./src/redis-server --port 57192
启动 Redis 服务。
第三步 安装应用
- 执行
tar -zxf bodhi-app-[发布编号].tar.gz
,此时会解压出名为bodhi-app-[发布编号]-[项目编号]
文件夹。 - 执行
cd bodhi-app-[发布编号]-[项目编号]
进入应用根目录 - 执行
npm install
安装 Node.js 模块依赖。
在国内网络慢可使用国内镜像安装:npm install --registry=https://registry.npm.taobao.org
- 执行
vim repository/project/globalconf_database.json
打开数据库配置文件,修改用户名、密码、地址等,以符合部署所在环境需要。 - 启动应用,执行指令 $
./bin/appctl.sh start
至此部署完成,可根据应用服务器 IP 地址:端口(默认 5301)访问应用。
神器官网: https://wuyuan.io/tutorials
查看自己机器的ip会吧,不会百度哈。
西红柿对外服务demo:192.168.151.xxx:5301
四、大功告成
发给粉丝看看。
此刻的心情
小伙伴,如果本文对你有帮助。求评论、求点赞、求收藏