说说我的博客(无法评论已修复)

2020年06月02日 admin 2评论 378阅读 3喜欢

前言

    欢迎大家访问我的博客啊,现在运行的博客已经是我第三个版本了。每个版本都上线过,因为我改的时候东西涉及到了很多,不方便局部更新,而且我也忘记记录改了哪些,所以每次更新都是积累到一起重新上传到服务器再部署。

    最近看了下网站日志,发现有不少链接是wp-login.php的,这里声明下本站不是用worldpress工具搭建的,自己纯手敲的。另外博主对自己的技术不够自信所以设置右键屏蔽防止恶意攻击,如果真的想看源代码,聪明的人应该知道怎么能看到。然后又发现不少请求robots.txt和sitemap.xml返回404的,后面才知道这些请求可能是百度或者谷歌放出的爬虫。应该早点意识到的,影响百度收录了关于robots.txt我的确没弄,但是sitemap.xml我有啊,后来才知道搜索引擎的默认站点地图是根路径的,而我的不是,但是关于站点地图的url,可以在robots.txt里面配置。所以我添加了robots.txt,这两天看日志的确没有这些问题了。另外我还想吐槽下,为什么我的站点百度只收录了我的首页,而谷歌收录了我的所有文章。。

博客前端

    其实我在搭建这个博客的时候,后端我还是不怎么怕的,因为我就是搞后台的,倒是前端,如何进行页面布局以及样式修改我不怎么擅长,这里我的博客前端框架用了最新的bootstrap4.0

  • 页面布局参考了一个worldpress博客主题,分上(header)中(main)下(footer),中间再分左(section,article)右(aside)两栏,之所以这样设计,有利于搜索引擎抓取和文章架构的层次表现。同时由于bootstrap支持响应式布局,所以本博客在pc端、手机端以及ipad均兼容显示。

  • 博客导航条就属于纯搬bootstrap的导航条示例,只不过我觉得菜单下拉菜单小三角不好看,最好自己改成鼠标悬浮弹出。

  • bootstrap组件的话用到最多的就是按钮(文章标签),表单(登陆和注册页面,列表组(最新文章和最热文章),模态框(打赏功能),弹出框(按钮悬浮提示等),分页。总之通过这次自己手写页面,我对boostrap不怎么陌生了,能用到的组件都用了。

  • 引用了不少js插件,美化站点,毕竟搭这个站点时感觉像自己的孩子一样,别人网站有的我也得有。没有的话只能自己硬着头皮捣鼓

    由于前端页面字体没有用bootstrap的字体,而且用了其他的字体,可是这个字体文件有点大,第一次访问页面时,会有明显的字体切换的过程,不过后面访问其他页面不会再出现了,前提是没有清除缓存哈。。虽然写页面的过程中遇到了很多问题,不过只要善于百度这个工具还是能一点一点解决的。比方说有些动画原来css就可以实现,还用个锤子js控制,如博客登陆页面那个滚动提示信息,一开始我准备用js写,后来百度了下发现css就能实现,这才发现自己前端真够菜的啊,好像css学的好,页面要多花里胡哨就多花里胡哨。

博客后端

    博客后端是基于django2.2搭建的,后台是采用开源的xadmin。不得不说django在搭建轻量博客的确很方便,针对博客文章分类聚合、站点缓存以及站点地图,django都提供了很好的接口来过滤文章、缓存数据和生成站点地图。下面说一下实现的功能吧

  • 博客文章搜索接口则是利用django-haystack来完成站点文章全局搜索功能的。同时支持文章搜索关键词高亮显示。

  • 博客的评论并没有引入开源的第三方评论系统如valinegittalk,主要是自己觉得博客评论这块挺重要,涉及到的技术难点挺多,也想挑战下自己,所以本博客评论系统是基于自己摸索搭建出来的,支持评论回复邮件通知。可能会存在某些目前还未测试出来的bug。还请大家见谅。

  • 站点注册的话目前博客只支持qq邮箱注册(其实这也是为了避免站点托管过多的头像图片,直接获取qq头像地址,同时也是为了接收回复评论方便接收邮件),不过本博客已经针对qq头像地址进行了加密处理,不会暴漏大家的邮箱。后续可能会加入第三方登陆。

  • 博客集成了celery异步任务框架,通过异步发送邮件,这大大的降低了用户操作完毕等待页面响应的时间。

  • 而且由于博主喜欢看书和看电影,博主实现通过celery的定时任务来定时执行scrapy+scrapyd对我的豆瓣个人影单以及书单进行增量爬取。呐!具体效果可跳转本站的影单书单查看,中间为了实现这个功能,废了不少脑细胞,也走了不少弯路。同时基于django-celery-beat和django-celery-results实现后台部署计划任务以及查看任务执行结果。

  • 博客后台也就是xadmin同时集成了markdown编辑器和富文本编辑器ueditor。markdown主要用来记录自己的编程学习笔记。富文本编辑器主要用来写一些影评或者书评乃至个人随笔。针对ueditor添加了秀米编辑器,该文章样式就是基于秀米编辑器加工而成。虽然秀米编辑器是用来写微信文章,但是有些样式挺不错的,所以也就集成了。

  • 博客针对文章实现了三种加密方式:①全文加密;②部分内容加密;③部分内容需要登陆及任意评论站点一条。

  • 博客解决了markdown和ueditor代码样式美化的问题,支持文章设置多种代码风格。

  • 博客基于redis搭配django自带缓存接口,实现部分数据开启缓存。

  • 针对评论的表情开启了懒加载,点击表情按钮后需要滚动下滑轮触发表情图加载。这也是为了提高页面加载速度。

    总至还有一些细节问题就不一一赘述了,都是一点点敲出来的。

博客部署

    本博客通过nginx+uwsgi+redis完成站点部署,同时利用了supervisor来管理uwsgi、redis、celery、scrapyd等进程;这里极力推荐supervisor,太方便了,对每个进程可控实在是让人喜欢,尤其是站点需要更新功能的时候。

关于未来

其实本打算在这个博客搭建完成之后,出一个关于django搭建博客的教程,也算是整理下自己当时搭建的过程,不过后来发现自己在搭建这个博客的时候笔记比较凌乱,都是这改一下,那改一下,没有成体系的笔记过程。如果后期有时间我可以整理下搭建博客一些比较重要的模块。比方评论模块,我自认为我这个评论模块设计得不行,有很大的弊端,不过这个弊端是基于评论数量如果很多的情况下才会出现的。看这目前0评论架势,我丝毫不慌。呵呵哒,今天才知道我这个评论模块原来有个bug,我自己试了下输入用户名和邮箱发现无法评论,操,难道这就是我到现在零评论的原因,我现在终于知道了为什么在百度统计管理界面看到有几个访问都在留言页面停留半小时,特么的是不是大家在评论时候发现评论根本就不行。我.............................真的是菜啊。。。不过问题已经解决了,大家可放心评论。

timg.jpg

未未

  1. 站点实现音乐播放器功能,目前已经完成了网易云音乐和QQ音乐的搜索接口、播放接口、歌词接口、封面接口,其他播放平台接口还在开发。html音乐播放器准备从github上下载一个模板下来。

  2. 站点实现视频播放功能。很久有这个打算的,主要是我这个服务器每个月允许1000G流量,结果我每个月用不到10个G。所以准备弄个视频播放页面,刚好搜到了一个视频采集网站。后面想想怎么搞。

  3. 写一款django的field插件实现图片上传支持图片地址以及可以选取服务器已存在的图片。


  1. hpp
    2020-06-26 16:32:18

    网站源码可以开源吗?

    回复
    1. admin
      2020-06-26 16:53:11
      @hpp

      不好意思,考虑到本站搭建时间不长,目前本网站代码还不打算开源。后期准备出一个简单一点的但架构与当前博客架构一致的django搭建博客教程。

      回复

发表评论 取消回复

电子邮件地址不会被公开。

评论内容只能包括中文,字母,数字以及!!::,,。.;;??+-_符号
请输入以http或https开头的URL,格式如:https://oneisall.top