通过网上技术文章解决了很多实际问题,作为一个社会人光吃不吐显然有些不太合适。本人是一枚业余web开发爱好者,陆陆续续开发过一些单页系统,都是典型的前后端分离架构,从这篇文章开始,分享一个带xls导入、pdf报表生成等特征的单页系统开发过程,希望有飧读者。网上有太多系统讲述单页应用原理的文章,本系列就不涉及这些概念原理了,全部是操作配上必要的解释,文笔简陋,敬请多多包涵。
开发项目需求为:某单位开展考核工作时,需要处理大量的纸质材料,包括考前对每个人员查找对应标准(考核标准与年龄性别职称相关)、制作成绩记录表、填写记录表、成绩汇总评分和数据统计。由于人手不够、容易出错等问题,该单位决定开发一个信息系统来支撑考核工作,并且预留webapi,便于后期多端扩展。经过分析,该系统可采用单页面前后端分离架构,主要功能有人员信息管理、考核标准管理和考核记录管理。
开发环境分本地和远程两部分,本地win 7,远程centos 7,可以购买云服务器(如阿里云)或者在本地win 7上安装VMware虚拟机,如果是后者,建议至少8G以上内存,不然使用起来可能会卡,关于虚拟机联网问题建议使用NAT,网络不通的解决办法见文档最后。远端桌面操作建议使用xShell。
后端:django(1.11.4)、django
restful framework(3.8.2)、reportlab(3.5.21)、mysql(5.6),ide使用pycharm(2017);
前端:vue(2.4.2)、element ui(1. 4)、pdf.js(2.0),打包工具使用npm,ide使用vscode;
运维:docker、gitolite。
前后端的依赖库用到的时候再解释。这里先说明几个基本操作:搭建gitolite版本控制环境、基于docker搭建开发环境、建立模板工程、将提交后的代码自动部署到服务器。
1)搭建gitolite版本控制环境
无论是个人开发还是团队开发,都需要版本控制来管理产品。gitolite是一个轻量级版本控制解决方案,开源项目,使用SSH公钥认证,能做到分支级的权限控制,操作过程如下:
(1)进入centos7环境,安装git基础包:
yum install perl openssh git
yum -y install lrzsz ##安装下载上传命令
git --version
(2)创建git用户并设置密码
adduser git
passwd git
(3)创建bin文件夹并设置权限,该文件用于存储gitolite
su git
mkdir bin
chown git:git -R ./bin ##设置目录所有权
chmod 755 ./bin ##设置读写操作权
(4)克隆gitolite到本地,安装到bin文件夹
git clone https://github.com/sitaramc/gitolite.git
./gitolite/install -to /home/git/bin/
(5)生成gitolite管理员公私钥对,将公钥安装到gitolite中
ssh-keygen
/home/git/bin/gitolite setup -pk dev.pub
(6)然后将私钥下载到本地,存入C:\\Users\\Administrator\\.ssh文件夹下,
sz dev
如果本地连接了不止一个远端服务器,应当在.ssh文件夹下创建名为“config”的无后缀名文件,格式如下
## for dev test
Host Dev
HostName 192.168.19.130 ##远端服务器ip地址
User git ##连接远端服务器用户名
IdentityFileC:\\Users\\Administrator\\.ssh\dev ##私钥文件位置
(7)客户机上安装win版git(双击exe默认就行了,没啥好说的),完成后任选一个文件夹右键运行Git Bash,用如下命令测试看是否能连上ssh:ssh -T git@Dev,显示如下说明连接成功:
(8)在客户机上克隆gitolite-admin版本库,增加新版本库TNDBXXXT,并设置读写权限,然后下载新版本库到客户机作为后续配置环境目录的基础。
git clone git@Dev:gitolite-admin.git
修改gitolite-admin本地版本库中的gitolite.conf文件,增加:
repo TNDBXXXT
RW+ = dev ##如果有多个协作人员,这里就给他们加上权限
(9)保存文件,使用git
add、git commit 和git push origin master完成推送,然后就可以在客户机选定位置克隆已创建的版本库TNDBXXXT.git,该版本库即用于管理开发过程产品。
git clone git@Dev: TNDBXXXT.git
VMware虚拟机网络配置
NAT方式默认连接外网是肯定连不上的,需要做以下几步:
(1)修改以太网配置文件;
进入目录cd /etc/sysconfig/network-scripts/,找到ifcfg-xxx文件,实际碰到的是ifcfg-ens33文件;打开该文件vi ifcfg-ens33,修改为如下内容:
然后打开域名解析配置vi/etc/resolv.conf
修改为如下内容:
重启网络:service network restart
(2)将宿主机本地网络共享到vm8.
这里很奇怪的是明明用的是无线网络连接,确共享的是本地连接属性,但这么用确实有效。也只能这么设置。
(3)有时从挂起的虚拟机恢复系统时,需要重启网络service network restart,才能恢复网络连接。