飞仙锅建站日志

飞仙锅建站日志

    飞仙锅是涂飞的博客站点,主要内容与互联网技术、产品、运营相关。

    这一篇建站日志记录了从筹划到开发、测试、上线、迭代、内容运营的全过程,并建了一个专题《飞仙锅建站日志》,收录了关于建站的技术、产品、运营的专题文章,有兴趣了解一下。

    站长java程序猿出身,也用c++、php、objc、android、javascript、ruby等开发语言做过项目,熟悉Linux基操、shell、load balance、分布式计算、sql、CDN调度等技术,996之余研究过多种新技术和开发语言。8年前还在和代码相濡以沫,中间打了个岔,做了几年产品狗,而现在一名标准运营汪,终归与代码相忘于江湖。

    去年研究了一下python,才得以机会重逢,感觉相逢恨晚,其简洁的语法、丰富的组件、易于部署等特性,从方方面面激活我对代码热爱。看了很多开源的代码,其对象化设计思想,也非常适合做大型的网站项目。尤其在接触到django以后,才发现它把不必重新造轮子的思想发挥到了极致。giao!

    作为老牌程序员,具备多项技能,开源产品功能不好用重写,界面不好看重新设计,性能跟不上调优,争取每一处都写出‘优雅’的代码,一定要赏心悦目,且具备可扩展性,低耦合度,带着这样的初衷开始了我的建站之旅。

    这篇日志记录了飞仙锅博客站点建站过程,一来做个备忘录,二来给有同样想法的同学一个参考。话不多说,上活:

V1.0

  • 【技术选型】完成了主要的技术选型,全部都是开源组件,可玩性高,完全可定制,但是组件间的兼容性问题可能是玩开源的阿喀琉斯之踵。
  • 【技术选型】开发语言:选用了python3.7做为主力开发语言,django3.0做为MVT技术框架。选用django-blog-zinnia开源软件做博客基础代码。选用mysql8做为数据库
  • 【页面优化】调整了django国际化的参数,修复了部分蹩脚的中文翻译
  • 【网站名称】为网站起了个名字,飞仙锅,笔者的游戏ID《飞仙锅建站日志第1篇-初识django-blog-zinnia 》《飞仙锅建站日志第2篇-django-blog-zinnia代码解读
  • 【技术】选用django-theme-bootstrap做为前端界面模板,需要引入到django工程里,修复了django2.0与3.0不兼容的问题《飞仙锅建站日志第3篇-换肤django-zinnia-bootstrap
  • 【技术】选用django-app-namespace做为前端模板命名空间组件,安装在系统中就好了
  • 【技术】屏蔽了zinnia中发布评论给blog作者发邮件的功能,因为它是阻塞式的,影响评论体验,以后得空再改成异步发邮件。歪国人啥事都发邮件,发个站内消息不香吗?
  • 【技术】走了点弯路,研究了几款admin后台,如xadmin,django-admin-bootstrap等,由于django3.0与源码兼容性太差,放弃了,先用原装的。
  • 【功能】评测了几个富文本编辑器后,最终还是选择了ckeditor和ckeditor-uploader,因为样式需要微调,要copy到工程内,可以随时修改。markdown也蛮香,但用不太习惯。用zinnia_ckeditor组件将ckeditor-uploader和ckeditor整合到工程中去。跑起来后,详细研究了ckeditor最新版本所有配置参数,调了一个最适合自己的姿势《飞仙锅建站日志第4篇-添加django-zinnia-ckeditor富文本编辑器
  • 【功能】原装zinnia前端列表展示不符合中国人的阅读习惯,改!重新定义了列表模板
  • 【功能】gravator,被用于zinnia项目的个性头像,很香,但被墙了,只能先暂时割爱
  • 【功能】写一个文章阅读数装饰器,传统的blog.number字段法记数法太不优雅了,用反向注入的思想去做,即插即用,谁用谁牛P《飞仙锅建站日志第5篇-增加文章阅读计数器
  • 网站部署
    • 【部署】去阿里云买了域名www.feixianguo.com,不贵,紧接着提交了“实名认证”。
    • 【部署】截止到现在,基本能用了,就发布了V1.0。将代码部署到了公网,当然只能用IP访问

V2.0

  • 【部署】开始做域名ICP认证,与阿里客服做完了实名认证后,提交了管局。期间阿里云热情向我推销其“付费备案服务”,无优、高效、安全,拒!
  • 【部署】去工信部网站做了短信验证,正式提交工信部审核
  • 【功能】zinnia原装的django-comments实在无力吐槽,老难用了,只能做一级评论,无法回复点赞。还把Post翻译成‘张贴’,比较狗血。评估一圈,决定用django-mptt-comments这个多级组件来改造,跑起来也比较容易,但评论界面太感人了
  • 【功能】后端接口全部预埋逻辑检测,以防非法访问。前端界面全部重写,选bootstrap风格,操作易用性用javascript代码来解决
  • 【功能】开始做注册、登录、验证模板,同样选django-allauth来做改造,界面也是同样感人,但功能很齐全。过程中最麻烦的是,用自定义的UserProfile类替代掉django的 auth.User,会造成migratioins各种报错。如果你也遇到这类问题,新建一个项目,先把UserProfile与auth.User的Merge搞定了,再加入其它app
  • 【功能】想做weibo,weixin的第三登录,但需要ICP认证完毕,再能申请
  • 【部署】www.feixianguo.com域名终于审核通过
  • 【部署】配置nginx+uwsgi+django生产环境
  • 【部署】去阿里云申请一个ssl免费证书,配置到nginx中去,可以使用https协议访问
  • 【功能】修改了网站首页模板的Footer部分,用bootstrap布局,并且将ICP认证信息添加上去了
  • 【功能】使用django.contrib.flatpages组件,将关于我们、稳私政策等简单页面给管理起来,可以在后台直接修改,方便权限管理,赞!《飞仙锅建站日志第7篇-django-contrib-flatpages简单页面不简单
  • 【部署】搭建了私有git服务器,方便修改代码,与生产环境同步。《飞仙锅建站日志第8篇-CentOS搭建Git服务器及权限管理
  • 【部署】配置nginx的http访问全部指向https《飞仙锅建站日志第9篇-nginx http站点重定向到https站点
  • 【功能】增加了个人头像上传的功能,可以清除
  • 【功能】开始整合django-cms和zinnia,可以更方便的组织内容。
  • 【功能】找了一个的bootstrap网站模板,做网站的landing页面,也就是首页,网站瞬间高大上了不少。
  • V2.0功能说明
    • 【可用性】内容管理、博客、内容索引、全文搜索、富文本编辑器、多级评论回复、支持bootstrap页面自适应、好看的后台管理界面
    • 【扩展性】niginx静态负载、wusgi动态负载、redis缓存负载、zinnia支持ckeditor、django-cms等扩展、view_record记数
    • 【安全性】支持https、登录注册验证、防SQL注入、自动数据库备份脚本
    • 【敏捷性】xcode代码编辑器,配合自建的git服务器实现实时代码发布
  • 至此,网站正式升级成了2.0。

V3.0

  • 内容运营
    • 【SEO】做了最简单的SEO,将title与meta内容修改了一下。后续要想办法提高百度的收录量
    • 【SEO】加入了百度统计的代码,现在可以在后台看访问数据了。
    • 【功能】增加了一个功能,博客置顶显示,将最优质的内容排前面。
    • 【功能】这几天写了一个爬虫,源码是基于python 500lines项目的crawl.py来个修改的。主要解决抓取网上优质的内容,通过正则表达式和beautiful soup来抓取内容。
    • 【内容】下载内容直接入库,下载图片需要突破被抓取网站的防盗链,并放到合适的本地目录内。为了尊重原创内容,抓取的文章都注明原文地址,将内容编辑一下就发布了。
    • 【内容】周末两天沉下心来,从头开始整理了一个专题,“建站日志”,写了5篇
    • 【SEO】今天针对百度的收录写了一个自动提交百度收录的python脚本,将爬虫抓回来的文章和原创文章一起提交上去。
    • 【功能】今天新增了“点赞”功能,可以对博客和评化进行点赞。《飞仙锅建站日志第10篇-增加点赞功能
    • 【内容】今天开始整理用户运营方面的文章,也从网上抓了不少内容,还在一一整理发布
    • 【运营】开通了个人的微信公众号,会定期将优质文章通过微信公众号推送
    • 【内容】调整了顶部导航,突出重点的内容分类,主要是增长黑客和技术研发
    • 【内容】调整了底部导航,主要是精简了样式展示和外链
  • 主要功能
    • 【功能】调整了热门日志排序,从原来按评论数调整到按浏览量排序
    • 【功能】新增博客内容资源管理表,将内容中所有的图片,抽取到内容资源表中,方便进行管理
    • 【功能】新增图片压缩图功能,100k以上的图片都生成压缩图,在列表上只展示压缩以后的图片
    • 【功能】新增网站的列表展示模板,分为默认模板、单图、多图三种,并做了移动端适配
    • 【功能】调整了百度收录链接,从zinnia原生的“/blog/2000/09/10/xxx”调整为“/blog/detail/xxx”
    • 【功能】调整了面包屑导航,主要针对博客详情页,从“/2000/09/10/xxx”,调整为“/所属分类/xxx
    • 【功能】使用django-environ,做了开发环境与生产环境的分离
    • 【功能】调整了个人中心、帐号设置等页面
    • 【功能】提供了注册用户投稿功能,暂不对外开放
    • 【功能】新增首页焦点图功能,提供随机四轮播图
    • 【功能】新增微信分享接口,监听分享到朋友圈、微信好友的分享操作
  • 至此,网站正式升级成了3.0。

V4.0(在路上。。。)

  • 主要功能
    • 【功能】增加了详情页打赏功能,可以通过微信和支付宝的二维码进行打赏
    • 【功能】优化了博客焦点图的显示,标题加了一个渐变的底色;向前向后按钮缩小到30%显示大小;在移动端通过css动态调小了dot
    • 【功能】优化了侧边栏在移动端的显示
    • 【功能】优化了详情页图片显示,给content加了一个过滤器,动态增加了img-responsive center-block样式,保证图下不会出格显示
    • 【功能】后台做了ckeditor的图片上传自动压缩功能,当上传图片大于1M时,自动压缩到1M以下
    • 【功能】首页改版,包括焦点图、推荐文章、热门文章等。重新规划了顶部导航、底部导航。
    • 【产品】首页改版也是为了增加其它网站板块做准备,后期可能会增加问答、服务、课程下载、电子书等
    • 【功能】增加了专题功能,包括专题列表、专题详细页、专题章节、专题章节详情等。所有内容都支持后台排序功能

评论列表

tufei

抢沙发

2021年8月20日 12:32回复

新的评论

清空