独立开发者系列(10)——fastadmin后台框架的认识

软件开发项目涉及到的东西非常多,作为独立开发者,普遍性的面对的是中小项目。而其中接单的情况下,以WEB方向的居多。其中主要有以下这么些类的:搭建官网cms  就是常见的资讯发布平台,发布一些企业新闻/活动宣传,纯粹是发到自己的网站上。随着移动端的到来,当前的cms都要兼容在H5手机端访问,并出现对应效果。这种订单要求很低,基本都是找一个cms套模板。而CMS背后代表一大批类似这种简单的需求。

  比如:之前提到的小型图书馆管理系统,公司里面简单的客户/员工管理系统,简单的广告投放记录系统,小程序里面的每日签到打卡活动,简单的宣发活动,在不考虑性能的前提下,基本都归属小型系统,这种项目的特点用一套万能的RBAC框架的admin管理后台,输出API,然后接入到第三方/前端/APP端显示,就可以快速完成。

      这里以fastadmin框架为示例演示基础项目的完成。去官网下载源码包,搭建好public网站。按照生成的后端php文件登录系统,就可以看到如下图:,安装太过简单,直接略过。主要是用该系统来实现我们自己需要完成的项目,各种小型的系统,类似书籍管理,内部任务管理,备忘录,小程序的后端开发..

  1. 搭建好之后,为了后续的开发方便,首先关闭后端验证码,因为是在本地开发,可能退出了登录,每次都需要验证码。跳到配置文件application/config.php 里面搜fastadmin 可以看到验证码部分的配置 login_captcha  默认是true 为了我们本地项目开发的快速,我们将其设置为false 这样就无需每次都要验证码。不过建议线上开启验证码,防止有人爆破后台。
  2. 打开调试模式 还是application/config.php 文件
     // 应用调试模式

'app_debug'              => Env::get('app.debug', true),

// 应用Trace

'app_trace'              => Env::get('app.trace', true),
将这俩个配置变成true  打开调试模式是开发时候的常规操作,也是所有项目接手或者修改必须打开的参数设置,这样代码写错,立刻可以看到完整的报错。没有报错的开发,会导致排查效率很慢。

  1. 安装在线一键CURD生成
      登录后台,找到插件管理。输入”在线命令”,可以找到该插件,点击安装。在线命令可以大幅度提升开发效率,在十年前开发的时候,还没有CURD一键生成的时候,我们开发后台是需要一个专门的程序员来开发,也就是一个人开发前端业务逻辑,一个人开发后台的管理。为什么会需要一个专门的人来开发后台,因为每次新建数据表,都需要复制页面,不断修改字段,而且还要根据字段做出各种效果,比如多选效果,开关效果,radio效果,当然还有各种按钮效果,包括更复杂的从其他表拉数据进行ajax请求,也要自己写后台请求的接口。这导致后台也是需要一个专门的程序员来进行开发的,后台人员根据开发业务的人员设计好的数据表,逐步开发后端功能。而后在慢慢的开发过程中,逐渐有人发现,其实后端的功能都差不多的,完全可以集成到模板里面,用一组命令进行生成。这就是一键CURD的核心主导思路。
  2. 一键CURD的使用
    可以直接使用命令行执行php think crud -t test 其中test是需要后台使用的数据表。但是我们一般不这么操作,安装了在线命令后,在debug = true的模式下,直接选择需要直接生成前端/后台control/model的,默认情况我们直接生成即可,生成后,再添加到菜单里面去

 
如果我们生成错误了,还是需要切换到命令行环境下执行,输入yes 才会删除(在线操作无法删除,需要切到命令行下删除)
php think crud --delete=1 --table=fg_test --controller=testxiong.php

  1. CURD的个性化操作明自定义控制器名:
     有时候我们设计了表名是A,但是我们并不希望控制器也是A,而且当我们设计的表数据结构非常复杂的时候,比如tb_gz_user_sign_count  这种数据表格式的时候,如果采用默认的生成方式会自动生成tb/gz/user/sign/count.php 但是很可能只有几张这样的数据表,我们为了方便管理 写成userSignCount.php控制器。默认是放在二级目录,这样非常方便的生成各种控制器。
  2. 怎么将生成的CURD放入菜单里面
    同样生成之后,点击一键菜单功能,会自动将生成的CURD变成一个个功能,放入到菜单里面。没有该功能,在传统的RBAC系统里面,我们需要手动将权限一个一个赋值给指定用户,除了超级管理员,配置其他账号的权限工作量非常大,特别是开发七八张数据表,光配置权限,可能就要一个上午。而现在这个一键生成之后,我们只要指派即可。
  3. 生成的前端页面进行修改
    一部分在admin/view对应的页面,主要是add/edit俩个页面,列表也index也有部分但是如果是改字段显示
    public/assets/js/backend找到控制器同名的js代码。可以更改列表,字段的样式显示。
  4. 字段的功能种类常用生成汇总 
    需要说明的是,fastadmin是根据数据库的字段自动映射生成CURD种类,也就是你可以通过数据表的设计,直接出现到后台的前端显示页面,这个功能很有用。因为调样式和加插件,配插件是后台开发程序员经常要花费大量时间操作的事情。
    最常用的:
     status  也就是状态码(一大部分的数据表都需要该字段,显示状态的)  设计字段的样板
    status    enum(‘0’,’1’,’2’)  状态值:0=禁用,1=正常,2=推荐
    实际效果图显示:

头像/封面/主图/背景/横幅  图上传(特点,一次只能上传一张,后面上传的会覆盖前面的上传)
image结尾的字段  varchar类型。在没有这种设计思路之前的普遍做法,找到一个图片上传的demo,将其对应代码复制到指定代码位置,然后替换成对应字段。后果如果是那种纯图的数据表,会发现密密麻麻都是图片重复代码,要不断去改。曾经不懂这个技巧,改其他框架30多个图片字段,写的异常复杂。而如果用框架的自动映射,设计表的时候就已经知道正常了。

活动图/滚动图/轮播图的上传(特点,一次上传一张,但是可以支持储存多张图)

Images结尾的字段,效果图

徒手写多图上传,无论用什么插件,都是比较费劲的,主要是要同时写好前后端,前端使用多图插件,拼接好图片之后,后端也要处理,而且在列表页面显示多图的缩略图的时候,要专门处理。但是该框架只要你对字段命名成images,自动完成了该过程。

富文本编辑器,普通的textarea 使用体验不是很好。需要将系统集成的富文本直接使用进去,这个也是一个挑战,在之前的系统里面,我们一般是找到一个富文本插件,然后集成到系统里面,再按照富文本的操作说明进行改动。
而在fastadmin里面 只要字段后缀命名为 content 自动关联富文本。如果没有装富文本插件,去下载一个免费插件即可。效果图

时间插件,主要是比赛日期/活动开始时间/结束时间之类的,之前的做法是找到时间插件,引入到后台JS代码里面,然后使用完成逻辑。而在fastadmin里面,直接将字段的结尾设置为time,会自动给你生成一个时间插件框框,需要date类型。这样与时间相关的插件问题,基本可以不考虑了。

性别/是否/对错  单之类的单选按钮,只需要再对应的字段后面增加个data 比如sexdata 然后设置enum类型 1,2 注释上下 性别:1=男,2=女 就可以出现如下效果(跟status类似,非常有用,再也不用每次对二元radio进行复制改代码字段操作)

  跨页面拉取数据表字段。一般比如商品的分类(商品页面需要拉取分类的字段比如是shopcate表)
shopcate_id 分类ID     int  将生成选择分类的下拉框,分类单选
这样就会读取分类的列表数据。绝大部分的电商场景会用到该功能,需要shopcate里面有id  name  pid 字段(类目表)
  如果没有该自动化功能,之前的操作是写个专门读取出数据的接口,给前端页面进行ajax调用,调用完成后,渲染进入到一个select 表里面,然后去勾选,复杂度非常高。而现在直接集成到系统里面。

小结:作为一个入门级的项目,fastadmin非常好用,可以应付绝大部分的小型场景,最少要掌握一套类似的admin后台框架,接单的时候,就能迅速反应出来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/750054.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙期末项目(3)

服务器搭建完成之后,编写了诸多api用于数据传输工作(略) 编写完成之后,回到鸿蒙开发工具,开始编写搜索页面的代码。 打开搜索页面时,先会展示历史搜索记录(如果有的话),…

爬取必应关键字搜索结果url

上代码 import aiohttp import asyncio from lxml import etree import aiofiles import time import random aiohttp 和 asyncio 用于异步HTTP请求和事件循环。 lxml 用于解析HTML。 aiofiles 用于异步文件操作。 time 和 random 用于控制爬取速度。 headers {User-Agent: M…

mysql安装创建数据库防止踩坑

为了安装MySQL的家人们走弯路,稍微有些啰嗦,讲述我安装的时遇到的问题,如何解决。仔细看看离成功不远。 mysql下载链接 MySQL :: Download MySQL Community Server windows下安装mysql-8.0.29-winx64,下载安装包后解压到文件夹中…

2024十大首码地推拉新app平台,一手首码对接平台!

到了2024年,地推新应用的接单平台成为创业者们关注的焦点。对于地推行业的从业人员而言,选择一家拥有一手单资源的平台至关重要,因为这直接关系到他们的利益。 2024年如果想要进行app地推活动,却没有人脉渠道的困扰,建…

谷歌网络营销中SEO的策略有哪些?

在网络营销中,SEO(搜索引擎优化)是一种关键策略,旨在提高网站在搜索引擎结果中的排名。首先,要进行关键词研究,找出潜在客户使用的搜索词。接下来,优化网站内容,使其包含这些关键词&…

【Java Web】Ajax异步请求

目录 一、Ajax概述 二、Ajax执行原理 三、实现Ajax的请求 一、Ajax概述 传统情况下,浏览器与服务端的交互都是采用同步交互的方式进行的;此交互方式用户在向服务端发送请求后只有等到服务端的响应报文回来后用户才能在标签页上进行其它操作,即…

openlayer 鼠标点击船舶,打开船舶简单弹框

背景: 对创建的地图对象,可以添加上监听事件,常用的有:地图点击事件、鼠标移动事件。 通过监听这些事件,又可以区分不同图层的不同要素,获取不同数据; 根据这些数据,又可以发起网络请…

电脑的D盘E盘F盘突然消失了 电脑只剩下C盘了其他盘怎么恢复

现如今随着时代的发展,无纸化办公成为主流,这主要归功于电脑,能够通过电脑完成的工作绝不使用纸质文件,这不仅提高了工作效率,也让一些繁杂的工作变的更加简单。不过电脑毕竟是电子产品,不可避免的会出现一…

【包邮送书】深度学习与信号处理

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

win11家庭版没有gpedit解决

1、右键桌面,新建记事本,把后缀名txt修改成bat 2、输入以下命令: echo offdir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txtdir /b C:\Windows\servicing\Packages\Micr…

electron-builder创建桌面应用

一、利用vue-cli创建vue项目 创建electron方式有很多,这里说的是vuecli创建的项目,通过安装electron-builder插件创建 也可以通过electron-vite构建项目 : https://cn.electron-vite.org/guide/ vue-cli构建 vue create XXX项目名 //按提示操…

cad怎么导出为图片?分享四种导出方法

cad怎么导出为图片?在工程设计、建筑设计、机械设计等领域,CAD图纸的编辑和分享是一项日常工作。然而,如何将CAD图纸高效、准确地导出为图片格式,一直是设计师们关注的焦点。今天,就为大家推荐四款强大的CAD导出图片软…

Ubuntu 20.04安装显卡驱动、CUDA、Pytorch(2024.06最新)

文章目录 一、安装显卡驱动1.1 查看显卡型号1.2 根据显卡型号选择驱动1.3 获取下载链接1.4 查看下载的显卡驱动安装文件1.5 更新软件列表和安装必要软件、依赖1.6 卸载原有驱动1.7 禁用默认驱动1.8 安装lightdm显示管理器1.9 停止显示服务器1.10 在文本界面中,禁用X…

Java毕业设计 基于SSM vue药店管理系统小程序 微信小程序

Java毕业设计 基于SSM vue药店管理系统小程序 微信小程序 SSM 药店管理系统小程序 功能介绍 用户 登录 注册 首页 药品信息 药品详情 加入购物车 立即购买 收藏 购物车 立即下单 新增收货地址 我的收藏管理 用户充值 我的订单 留言板 管理员 登录 个人中心 修改密码 个人信息…

196.每日一题:检测大写字母(力扣)

代码解决 class Solution { public:bool detectCapitalUse(string word) {int capitalCount 0;int n word.size();// 统计大写字母的数量for (char c : word) {if (isupper(c)) {capitalCount;}}// 检查是否满足三种情况之一if (capitalCount n) {// 全部字母都是大写return…

查看LabVIEW及各个模块和驱动的版本号

要方便地查看当前计算机上安装的LabVIEW版本以及各个模块和驱动的版本号,可以使用以下几种方法: 1. 使用NI MAX (Measurement & Automation Explorer) NI MAX 是一个强大的工具,可以帮助你管理National Instruments硬件、软件和驱动程序…

软件测试面试被面试官问到:你会搭建测试环境吗?该怎么回答显得很有水平

一、你会搭建测试环境吗? 导语:很多人在面试软件测试的过程中,经常被问到“你会搭建测试环境吗”?面对这样的提问,你知道怎么回答么? 二、如何回答 面试的时候,遇到这样的提问,很多…

linux系统中vim ls grep等命令无法使用

linux突然vim ls grep等命令无法使用 系统配置路径被修改导致无法使用 添加路径 执行以下命令 export PATH$PATH:/root/bin export PATH$PATH:/usr/sbin

【Java Web】简单了解前端工程化

目录 一、什么是前端工程化? 二、前端工程化使用的技术栈 一、什么是前端工程化? 前端工程化是使用软件工程的方法来单独解决前端的开发流程中模块化、组件化、规范化、自动化的问题,其主要目的为了提高效率和降低成本。说白了就是将曾经同在一个工程中的前端和后…

智能化物业服务:楼层动态一目了然

通过图扑先进的可视化技术,实现对物业楼层的实时监控与高效管理。全面掌握楼层动态,优化资源配置,提升响应速度和服务质量,为业主提供智能化、便捷化的物业管理体验。