一,前言
昨天搞了一个某鹅的服务器。学生现在都有照顾的(24以下),学生98元每年。还是2核4G60G,很不错的。当晚肝到凌晨,把后端完全部署到了服务器上面!
二,服务器配置
说实话服务器配置我也没玩太明白,先略过。以后玩熟练了再写一篇笔记(后补)。
三,宝塔端
首先登录宝塔页面,到软件商店,如图所示
把Mongodb和python项目管理器都安装上。
四,宝塔终端操作
在宝塔的终端输入mongo,进入mongo命令操作框。
其实这个操作和本地终端是一样一样的,没有什么不同,唯一的区别就是安装的时候方便一点点。
[root@VM-20-2-centos ~]# mongo
MongoDB shell version v4.4.6
终端的mongodb可以设置账户,密码和表名什么的。
以下图为例,我们创建了一个xxxxx的集合,里面插入了一条数据。
当然,在这个之前还有一步就是创建一个表哈,我这里已text为例,当然也是可视化的,我们找到软件商店,到里面找到mongo点击设置:
当然我随便弄了一个没有的表名哈:
4.1,放行mongo固定端口
放行mongo固定端口-》走起
五,服务器配置falsk
5.1,上传文件
上传文件很简单哈,属于基本操作,记得解压。
5.2,继续
打开python项目管理器:
把项目加入。进去,这里也是基本操作,不写了。
记得吧flask和pymongo这两个包加进去。
5.3,注意(BUG解决)
解决报错:
TypeError: 'Collection' object is not callable. If you meant to call the 'authenticate' method on a 'Database' object it is failing because no such method exists.
这个操作确实当时很懵逼哈,在本地服务好好的,部署到服务器就报错了。
经过我的研究发现,问题出在pymongo版本的问题。
因为:
db.mongo.insert(dier)
mongodb在4.0以及以上的版本,把insert方法加入了新的元素,而且宝塔安装模块的时候默认是对应python版本的,使用不知不觉它就会给你装一个4.0以上的版本。报错也是理所当然的。
解决:
在python管理器里面:找到项目,点击模块,把自己之前添加的模块删除掉,选用4.0一下的pymongo模块即可解决报错。
六,后言
我的app已经完全的前后端分离化了。打包到手机端可以正常的访问服务器提供的接口,下一步就是对积分页面的逻辑设计以及相关操作,预计需要新建一个试题库,已经积分,表的联立。(下篇文章预告)