django+bootstrap+xadmin搭建个人博客

前言

    该怎么说呢,现在在运行的博客已经是我第三个版本了,感觉后面应该不会再有大的变化了。后续如果有新的更新,应该都是局部更新了,第三版修改的时候,我已经尽可能保留了接口或者通过数据库动态配置解决的。下面就让我介绍下我的博客是怎么搭建的吧。欢迎大家访问我的django博客站点未雨晴空博客

博客预览

登陆页面

注册页面

注册邮件通知模板

审核通过邮件模板

评论邮件通知模板

pc端首页

ipad端首页

文章详情页面

关于页面

留言页面

友链页面

我的豆瓣影单页面

我的豆瓣书单页面

关于博客页面

    其实我在搭建这个博客的时候,后端我还是不怎么怕的,因为我就是搞后台的,倒是前端,如何进行页面布局以及样式控制我不怎么擅长。所有这里我的博客前端基于最新的bootstrap4.0框架,的确省了不少事。

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

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

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

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

    虽然写页面的过程中遇到了很多问题,不过只要善于百度这个工具还是能一点一点解决的。比方说有些动画原来css就可以实现,还用个锤子js控制,比方说博客登陆页面那个滚动提示信息,一开始我准备用js写,后来百度了下发现css就能实现,这才发现自己前端真够菜的啊,好像css学的好,页面要多花里胡哨就多花里胡哨。

    博客后台页面就不需要自己写了,因为django有自带的后台管理系统,不过我这里是采用开源的xadmin。毕竟相比较djang-admin更为强大一点,功能更多一点。博客的后台界面如下:

博客功能

这样后台不得不说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,太方便了,对每个进程可控实在是让人喜欢,尤其是站点需要更新功能的时候。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值