寄言燕雀莫相唣
自有云霄万里高

说说我的博客

2020年06月02日 未雨晴空 9评论 1457阅读 368喜欢

 前言

    首先,欢迎大家访问我的博客;本博客是博主基于django+bootstrap+xadmin搭建的。现在运行的博客已经是我第四个版本了。说下我的建站思路,博主在开发博客网站的时候是先写好页面原型,一方面是因为考虑到有了页面我后期想修改样式或者增加一些交互效果,直接在页面调试就行,也就不用本地运行项目了,另一方面熟悉django的人都知道,django可以基于模板template语言开发,所以如果网站页面雏形搭建好了,剩下的就是完成后台逻辑,进行数据渲染就行了。这里就贴一下我的静态页面目录,看图如下↓↓

1fc9a2c23691450b89f495a99600167a.png

博主有打算卡考虑出一个django搭建博客系列教程,算是整理下自己的搭建过程,同时也方便提供一些对django感兴趣的人借鉴之处。不过后来发现自己在搭建这个博客的时候笔记比较凌乱,如果要推出有体系的教程,挺费时间的,年末又换了份工作,又比较忙。如有朋友想搜索django相关教程,可移步前往我的友链页面,有几位大佬已经整理得很完善,但是我觉得只能对于想高度定制化,还需要再多了解django。如果真的有人想要看我的博客搭建过程,欢迎留言,如果留言的人很多,那我可以加班加点干。盘他娘一个教程。

 博客页面

    网页页面基于bootstrap框架进行开发,由于bootstrap支持响应式布局,所以本博客在pc端、手机端以及ipad均兼容显示。页面大量使用到了bootstrap组件的来开发功能,整个网站开发下来的确省了不少事情。页面交互效果依赖了不少js插件,前端就是这样子嘛,光有页面,没有交互那肯定不行的。如图片预览、文章阅读模式等。后台页面原打算用django自带的admin作为后台,但是django-admin作为后台,后面没法自定义。故借助django-xadmin快速搭建了一套博客后台管理系统,效果如下图:

23f7764febaf4cf084d1b880ccb95f5e.gif

自己也对xamdin进行了一些优化,后期再审读源码进行自定义一些功能。

 博客后台

    博客后端是基于django2.2搭建的,在截止到现在的版本,目前我建了7个app,也是考虑进来django应用做成可插板式的,分别是

user用户模块:  用户注册、登陆、验证码、密码重置、信息修改
article文章模块:文章列表、文章搜索、文章加密、文章标签管理、文章评论
comment评论模块:新增评论、评论审核,回复通知
page页面模块:静态页面托管、内容填充
douban
豆瓣模块:豆瓣影单、豆瓣书单、定时同步
task任务模块:任务计划、任务调度、任务执行、任务执行结果
uploader
上传器模块:文件上传、文件管理、文件查询、文件搜索
editor编辑器模块:markdown编辑器集成、ueditor编辑器集成
xadmin系统管理模块:页面导航栏、系统日志、系统配置

    博客文章一开始我后台只支持markdown编辑器,后面发现只支持markdown编辑器满足不了我。因为我需要markdown来记录自己的编程学习过程。富文本编辑器主要用来写一些影评或者书评乃至个人随笔。然后就加了个百度UEditor编辑器。文章搜索接口则是利用django-haystack来完成站点文章搜索功能的,搜索结果支持搜索关键词高亮显示。同时文章支持了三种加密方式:①全文加密;②部分内容加密;③部分内容需要登陆及任意评论站点内容一次。博客解决了markdown和ueditor代码样式美化的问题,支持文章设置多种代码风格。

    博客的评论并没有引入开源的第三方评论系统如valine和gittalk,主要是自己觉得博客评论这块挺重要,涉及到的技术难点挺多,也想挑战下自己,所以本博客评论系统是基于自己摸索搭建出来的,支持评论回复邮件通知。可能会存在某些目前还未测试出来的bug。还请大家见谅。在评论页面需要注意的是由于评论区域的表情开启了懒加载,所以点击表情按钮后弹出表情框,需要滚动鼠标滑轮触发表情图加载。这也是为了提高页面加载速度。

    站点注册的话目前博客支持邮箱注册,建议使用QQ邮箱可以同步qq头像不然就是站点默认头像。另外为了防止垃圾评论,评论会统一邮件通知博主本人审核评论,审核通过才会显示,大家放心,如果是qq头像,本站已经对qq头像地址已进行了加密处理,不会暴漏大家的qq。希望来访的人尽可能真诚,莫不要随便填个邮箱,以免本站点邮件发送到他人邮箱,感谢理解。

    博客后台编辑器模块重新整理了django-meditor和django-ueditor统一在一个应用下,便于后期管理。

    博客任务管理模块也是重新整理了django-celery-result和django-celery-beat统一在一个应用下。任务管理这块实现了用户注册时和评论文章时的异步发送邮件。且依赖celery定时机制,可配合站点实现一些数据抓取如豆瓣影单和书单的定时同步,具体效果可移步本站的影单和书单查看。

    博客在开发初期遇到站点文件存储问题,考虑后期可能迁移七牛云存储,当然初衷是希望本站运行所有的数据尽可能存放在博客源码目录下,所以新增了上传器模块,来统一调用django-storage的存储接口来存储文件,之所以如此设计,好像有云存储提供继承了django的storage机制的库,如此到时候更换图床也方便了。

博客系统管理模块主要是站点一些配置,如页面背景动画是樱花还是线条、站点封面图、是否开启留言评论、屏蔽右键审查等功能。

 博客部署

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



  1. amelie
    2020年10月31日 09:38

    看起来很不错,从刚刚从追梦人生那里学习了搭建简单的博客,希望自己也能整出个漂亮点的博客

    回复
    1. dyp amelie
      2020年12月9日 14:04

      追梦人生的网站打不开了。

      回复
    2. 2020年10月31日 09:44

      谢谢,如果能自己搭建一个出来。相信我,这其中的过程会带给你很多前所未有的感觉。

      回复
  2. 675675
    2020年10月26日 12:25

    8

    回复
    1. 2020年10月26日 12:28

      朋友,你好。欢迎你的到来!

      回复
  3. huanyy
    2020年8月31日 15:39

    大佬就是大佬,真是太强了,俺之前用Django搭了一个小博客,看到大佬也是用Django搭建的,崇拜哈哈!!!我要去整第二版了,期待博主后面出一些架构思路之类的,可以给我这样的小白提供一些帮助,哈哈,太强了...

    回复
    1. 2020年8月31日 15:56

      不瞒你说,我也是搭建了好多个版本的博客,这个算是心血投入比较多的,也是加入了自己的想法,毕竟自己亲手一点点实现那成就感爆棚啊!欢迎一起交流学习。

      回复
  4. hpp
    2020年6月26日 16:32

    网站源码可以开源吗?

    回复
    1. 2020年6月26日 16:53

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

      回复

发表评论 取消回复

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

请输入以http或https开头的URL,格式如:https://oneisall.top