国庆回来后整个人都不是很在状态,总想找点乐子自己玩玩,于是就萌发了搭建个人博客的小想法,这里Tatsumi个人博客主要使用Python作为开发语言,框架使用了比较轻量级的Flask(实现了登录、评论、排序、搜索、分页和富文本功能)。
其实很早之前Tatsumi就想做一个小项目把前后端的流程过一遍,实现一下前端的展示后台的存储与调用,毕竟作为从事数据科学的小萌新懂点前后的知识对于与朋友和同事的沟通还是很有帮助的,并且博客还能作为平时学习记录和项目展示的平台,所以这个个人博客的小需求就这样决定啦(也是相当的草率的说)
这里就是博客的主页面
这是博客的后台页面(进行文章的增删查改管理)
这是博客后台的文章编辑页面(添加了富文本框 能添加图片与链接,采用多种样式的字体)
前端很多的组件都使用了Bootstrap,作为前端小白的Tatsumi来说Bootsttrap还是相当友好的,虽然很懂功能块长得也不是特别好看,但是相比标准的原始组件颜值还是有很大提高的。使用Bootstrap的关键就在于复制粘贴,之后再稍微改改样式就好了,对于像Tatsumi这种个人需求的实现还是相当足够的。当然前端的水还是很深的(像JavaScript等动态元素这里也没有用到),要做得更好看还是需要继续深挖学习。
后台Tasumi选用了自己比较熟悉的Mysql,这个没什么好说的,主要的重点应该是开发时数据库的设计和迁移了。除了Mysql这种关系型数据库,还可以使用MongDB这种非关系型数据库保存数据的,这里Tatsumi没有选择(原因是没有太大把握,只用来存储过自己爬取的文本信息),以后做文本挖掘项目的时候会再选用这种数据库的,恩。
然后前后端的交互的话Tatsumi使用的是Python的Flask框架。项目初期的时候尝试了网上比较流行的Django框架,大概因为Django是一个比较完整的框架吧,打开Django项目的时候有种令我感到迷茫甚至绝望,太多组件不知道怎么操作,所以最后Tatsumi还是选择了Flask。Flask的项目结构可以说是相当的简洁清晰啊,前后端交互起来也是非常方便,开发个人应用的话我觉得是相当适合的。
最后是部署上线。经过这次部署,Tatsumi是再也不敢瞧不起部署这种活了。从购买域名、购买服务器、配置Python相关库、安装Mysql、部署uWSGI、Nginx、Supervisor(坑相当相当多,所以这里就略过啦,感兴趣的可以私聊Tatsumi),Tatsumi已经是有无数次想砸机子翻桌子的冲动了,甚至部署到感觉要得颈椎病,但想到域名和服务器好贵,还是得咬咬牙死磕。
总的来说这次开发也算是Tatsumi的第一次尝试吧,通过这次的小项目算是完整地理解了前后端运作的大致方式,自己也过了一把部署的瘾,每一次功能的实现或每Debug都让Tatsumi有一种回到初识数据科学打比赛时候的感觉,是那种久违着的痛并快乐的满足感。大概最近是做的比较久的爬虫数据分析和可视化的工作,久而久之地让自己形成了一套比较成熟的解决方案或者说是一种套路吧(看来还是要给生活来点激情!)。
项目总结:果然动手才是学习的捷径啊,期间买了一本叫《Flask Web开发》的书,结果没有看几页,都是边实现边解决问题,遇到问题时通过必应啊,Stack Overflow啊,GitHub啊甚至是博客园,里面都要好多的解决方案。感觉我们现在其实没有太多的时间成本去学习一本完整的教材,完全可以先把基本的需求先实现再后面通过不断学习再优化项目版本,所谓的需求推动学习嘛,这样做起来Tatsumi感觉学习效率会高很多。
Github代码 :