因为本人之前学的python,打算自己做网站的时候因为考虑到结合爬虫和微信小程序,后端统一可能会比较好,所以没有考虑php/java。但是python的网站搭建资源真的少,本人又不是专业技术出身,三脚猫水准只能从已有框架上进行最简单的二开。
在github上找到了一个优秀的基于django的二开框架:coderedcms。
该CMS在国内的资料比较少。默认是英文。基于django2.0 wagtil CMS,更新比较频繁,可以通过修改setting中的LANGUACE_CODE实现部分汉化。最大的特性是可以实现自由度比较高的可视化前端页面布置。基于Bootstrap的前端提供了很高的可玩性,很符合一部分新手希望能可视化操作,而无需编写代码即可生成前端页面的愿望。
redcodecms后端生成页面展示安装也非常容易。购买完ECS后,下载anaconda3,然后pip install -r requirement.txt后,可以跟普通django框架一样runserver了。这是我在github上找到的不多的能直接跑起来的框架之一(除去docker的)。可见其代码十分稳健。但是在使用过程中,发现的问题是:
1.通过直接操作数据库,无法进行条目的增删,否则会报错。即如果通过后台生成了一个页面,如果直接在数据库进行删除或再复制一个页面出来,会导致后台无法打开。可能是其后端检索缺少try--except导致的,但是我用爬虫爬取的数据一定是在后端直接生成条目,故这重要的一点(也是因为懒得重写models)特别严重。
2.对于新手来说,缺少很多本地化需要的组件。比如国内的社交媒体支持,或者符合国人使用习惯的页面元素等。虽然这些都可以通过既有的(拆其他django框架里的)代码完成。但这就跟我(因为犯懒才)用这个框架的初衷相悖了。
3.最难的一点来了:对于新手来说,你要想调样式,需要在/static/css/custom.css自己写css然后再用,这个对技术小白来说学习曲线忒长了(为此我单独看了好久的bootstrap,并且的确觉得真是个好东西。但我特么不是技术啊,我不想自己调前端框架啊)。而且,安装框架默认是不安装bootstrap的,你还需要自己去安装bootstrap才能实现很多好看的响应式样式,也是挺累的。
所以综上所述,在折腾了一段时间后,决定换框架。于是又找啊找的,找到了一个国产的优秀框架:osroom。
这是基于flask+mongodb+redis的框架。正好我的爬虫也是用mongodb储存而且最近也对NoSql感兴趣,于是想研究一下。但是从安装开始,就出现一路问题。以下是我的个人心得:
1.一定要按照osroom的指导文档一步步安装!尤其是新手!否则你不会知道哪里出了问题!
2.经常会出现安装时候GCC编译错误。我尝试过按照网上的办法,试过centos/ubuntu不同系统切换,GCC编译版本从5.0切到4.7。但都不管用,尤其是再cffi安装的时候,经常是报错的。后落在晚上搜了半天,忽然想到可能是python版本的问题(我用的anaconda 源码安装板)。于是:
rm -rf /root/anaconda3/
yum install python36
ln /usr/bin/python3.6 /usr/bin/python3
然后get-pip,再pip安装之前用的所有库(好麻烦!)
然后,果然成功了!!重新安装python之后,再python start.py runserver -h x.x.x.x(访问域名,可以填0.0.0.0)就可以看到该网站了!在之前虽然能跑起来,但是服务器经常抛出405错误的难题也解决了!(到最后我也不知道是哪里的问题,还有ImportError: libssl.so.10: cannot open shared object file: No such file or directory这类的问题。所以只能理解为需要yum安装的python能更好的服务于框架)
用osroom还有个好处。基于flask的网站,基本很多都是为了做api服务的。所以其后端数据对于做小程序或公众号开发是很方便的。
以上。
网友评论