实在刚刚创建博客的时候就已经有要添加友链界面的想法了,然而一个是自己的CSS技术确实不到家做不出自己理想的友链名片,其次如果是又在wordpress的编辑器当中用html来书写实在是太过于繁琐而且对手机端也不友好,之后友链多了也是难以管理。寻思来寻思去,还是自己动手,丰衣足食嘛,没有轮子我们就造!奥力给!( •̀ .̫ •́ )✧

刚好在寒假也是开始系统地学习flask了,正好趁着这个机会做一个小项目练练手。于是用了大概三四个晚上的时间,总算把这个友链界面给撸出来啦!

友链页面地址:friendlink.davincievans.top

在登陆以后可以对每一个条目进行单独的编辑(当然只有管理员可以登录XD

嗯嗯,基本上就这样啦!

技术栈

使用了Flask+MDUI来搭建后台和设计前端页面,最后使用Docker进行服务器部署

Flask这里我就不多介绍了吧。主要说一下MDUI以及用Docker来部署Flask项目

MDUI

MDUI(material design UI)是google在2014年发布的一款设计语言。我在第一次见到它的时候就完全喜欢上了它的UI设计,简约且不失格调,同时也拥有着属于智能时代的设计感。但是当时我也只是喜欢却不知其名,直到后来我去访问了小透明・宸做的一个小项目以后才认识了它,从此以后一发不可收拾,只要是前端界面都用上了xD

MDUI除了好看,本身也拥有成熟丰富的组件以及详尽易用的文档,同时也能满足我的多平台响应的设计要求。

中文文档:MDUI中文文档

Docker

嘛,Docker我相信大家都非常熟悉了。毕竟最近Docker也是越来越火。

虽然Flask的部署相对于Spring之流也简单友好,但我在部署的时候确确实实遇到了不少的问题。

最主要的还是虚拟环境的配置,可能由于requirements.txt有点问题吧,很多依赖库都没有安装上,之后在我手动安装完成后又提示我源码出错。当时真的崩溃了orz

思来想去一个晚上,我们所希望的就是一个简易地去部署项目,这样我们才能更专注地去做我们的开发。在咨询了几位dalao以及看了一些文档教程以后,我决定尝试着使用docker。

我也是第一次使用docker。不过用完以后觉得太香了。只需一个Dockerfile,就能把我的整个运行环境完完整整地直接打包到服务器,极大地节省了部署所需要的精力。

事实上,docker实在是太好用了!它相当于把我的开发环境原封不动地放到了服务端上,免去了构建虚拟环境的一个流程。同时它本身也具有版本控制功能,因此实际上使用起来和git的体验完全一样。只要每次有新内容更新我推送到我的github,在阿里云的docker hub也会自动更新镜像并且应用在我的服务器上。

但同样的,缺点也相当明显:docker所占空间确实有些大了。我的flask主程序大概只有5M不到,但是docker打包之后我的整个镜像就已经到了接近一个G。对于我已经快用了90%内存空间的服务器来说无疑有点承受不住orz,我自己也预计在这两天重新DD一个新的系统了。阿里云服务器里的一些预装确确实实不太干净。而且我也打算用上OSS,要不然服务器可能真的扛不住了xP。

TODO

我已经将我的友链进行开源。

Github:https://github.com/DavinciEvans/friendlink

  • [ ] 增加Gitalk评论系统
  • [ ] 异步处理表单
  • [ ] 完善日志系统

最后欢迎大家来添加友链嗷!!!ヽ(✿゚▽゚)ノ


You Are All Stardust.