本章集中介绍四个重要的小功能:回到顶部浮动按钮、矢量图标、页脚沉底和粘性侧边栏。 这几个功能与Django基本没啥关系,更多的是前端知识,但是对博客网站都很重要,问的读者也比较多,因此也集中讲一下好了。 回到顶部浮动按钮当用户拜读完你的博文后,可能想回到文章开头重新阅读,或者审视其中的某些内容。如果文章内容较多,不停滑动滚轮回页面顶部未免有点太让人烦躁了。 一种解决办法是增加一个回到顶部的浮动按钮。当页面向下滚动到某个位置后,按钮就呈现在页面右下角;点击按钮,页面就回到顶部。这个功能 Boots…
分类详情
Django博客网站搭建 分类
凭借你勤奋的写作,拜读你文章的用户越来越多,他们的评论也分散在众多的文章之中。作为博主,读者的留言肯定是要都看的;而读者给你留言,自然也希望得到回复。 怎么将未读的留言呈现给正确的用户呢?总不能用户自己去茫茫文章中寻找吧,那也太蠢了。给评论增加通知功能就是很流行的解决方案:比如微信朋友圈留言的通知、新浪微博留言的通知、以及各种社交平台的“小红点”。 本篇将以django-notifications为基础,非常高效的搭建一个简易的通知系统。 发送通知前面的步骤我们已经很熟悉了。 首先安装djang…
**老读者注意:**上一章消息通知有个bug,即发给管理员的notify必须移动到new_comment.save()的后面,否则会导致action_object存储为NULL,并且导致本章的html拼接锚点失效。 原文已更正,为博主的疏忽表示歉意。 上一章已经实现了消息通知功能,可以很人性化的把用户引导到被他人回复的页面中去。 但是仔细想想,似乎还有不方便的地方:如果页面中评论较多,想找到感兴趣的那一条评论还是要费点功夫的。所以这个消息通知,最好是能够不仅前往正确的页面,还要前往正确的位置(需…
现在我们已经拥有一个可以进行用户本地登录的博客系统了。如果有人欣赏你的文章,说不定就会注册成为本地用户,并和你好好交流一番。 但头疼的是,用户可能每天都在互联网上浏览很多非常棒的博客,如果每个博客都要去注册才能评论,对用户是个不小的负担。对个人博客这类草根网站,说不定用户就懒得去注册了,你也就损失了一个潜在的”粉丝“。 比较流行的解决方案是允许用户通过第三方登录,即可以通过GitHub、微博这类知名社区的授权,从而登录你的小站,免去了注册的麻烦。 本章会介绍一个强大的库:Django-allau…
测试是伴随着开发进行的,开发有多久,测试就要多久。本教程已经进行了30多章了,都是如何测试的?当然是runserver啦!每当开发新功能后,都需要运行服务器,假装自己就是用户,测试是否运行正常。 这样的人工测试优点是非常直观,你看到的和用户看到的是完全相同的。但是缺点也很明显: **效率低。**在开发时可能你需要反复的修改代码、测试功能,这样重复查看几十次甚至几百次网页时会相当的让人烦躁。 **容易遗漏bug。**随着你的项目越来越复杂,组件之间的交互也更加复杂。修改某一个组件可能会导致另一个组…
上一章学习了自动化测试,很好,现在我们可以绞尽脑汁写出一份全面的测试,来保证代码永远健康了。 话虽如此,但是作为一个独立开发者很难写出真正全面的测试代码。这是因为用户在使用你的网站时可不会循规蹈矩,而是会以各种怪异的姿势浏览网页、上传数据。但这也不是坏事,用户就是天然的测试人员,他们会很可爱的帮你找出一大堆的bug,陪你度过难眠的夜晚(伴随着编程能力的提升)。 现在的问题是,开发者如何得知用户到底遇到了哪些问题?用户们大部分都与你素昧平生,分部在世界各地。更糟糕的是,部署在线上时由于配置了DEB…
我们的博客虽然还有很多不完善的地方,但是没关系,越早把它部署到互联网上,才能越早发现线上特有的问题。现在也提倡渐进式开发,让产品在迭代中快速成长。 部署考验的不是你的 Django 编程水平,而是你对 Linux 的操作能力,以及对网络通信的理解。多说无益,直接开干! 配置服务器要架设网站,首先你要有一台连接到互联网的服务器。国内比较出名的云服务器属阿里云、腾讯云、百度云,三家各有优劣,大家自行了解比较,并选择自己适合的购买。 利益相关:博主自己用的是阿里云,所以教程会以阿里云ECS作为例子讲解…
假设你的博客已经顺利部署到了线上。你写了很多好文章,和粉丝们互动并感受成就感。 现在你想更进一步,努力提高文章质量,使其更受读者欢迎,打造圈内一流博客。问题是该如何判断一篇文章是“受欢迎的”?靠浏览量是个方法,但是并不能区分出内容花拳绣腿的标题党。靠评论数也是个好方法,但个人博客通常读者不多,好文章零评论是很正常的。 这时候**“点赞”**功能就显得重要了。如果大部分读者都给了一个赞,那就表明文章确实还不错。 动手之前的思考点赞功能可不简单,实现途径非常的多。别急着动手,耐心思考:我们的博客到底…
本教程共写作了一年多(龟速更新..),也算告一段落了。如果还有读者特别想看、但是教程又没涉及的内容,博主会继续更新,不过时间就不能保证了。业余精力有限,如果不能保证文章的质量,那我情愿不写。 如果你是本教程的忠实读者,看到这里就已经学会了以下内容: 博文管理 用户管理 多级评论 文章栏目和标签 图片处理 第三方登录 点赞 测试与维护 部署 其他零星功能 不错,基本功能都有了。 接下来学什么响应式布局响应式布局,简单来说就是页面布局随着终端设备的变化而自动适应。 教程为了起步平缓,没有展开这方面的…
有些功能独立的小功能,单独一篇文章不够分量,于是在这里集中解释了。 和读者常见问题帖一样,本篇是持续更新的,想到一个写一个。 文章快捷导航快捷导航指的是这个功能: 点击对应按钮,页面立即跳转到另一篇文章中,省去了用户返回首页重新寻找文章的繁琐。 视图实现本功能的关键就是要查找出发表时间与当前文章相邻的文章。为了演示简单,就粗略以id作为发表时间的排序。 在之前的搜索文章的教程中,我们已经体验过contains这种查找方法了,现在需要用到另外两种:gt和lt。 编写视图: article/view…
既然有了写文章的功能,那当然也必须要有删除文章的功能了。 不安全的方式有了之前的学习做铺垫,删除文章实现起来就比较简单了。 首先增加一个视图函数: article/views.py ... # 删文章 def article_delete(request, id): # 根据 id 获取需要删除的文章 article = ArticlePost.objects.get(id=id) # 调用.delete()方法删除文章 article.delete() # 完成删除后返回文章列表 return…
#HTTML学习1 lang=”en”这是一个W3C的标准;lang代表语言,en是英语;改成zh-cn指简体中文xml:lang就是xml的语言##meta标签###charset代表编码格式,一般有utf-8,gbk-2312等###viewport一般用于移动端布局 content属性值详解: width:可视区域的宽度,值可为数字或关键词device-width height:同width initial-scale:页面首次被显示是可视区域的缩放级别,取值1.0则页面按实际尺…
用户管理用户数据可以说是大部分网站最重要的资产。用户管理就是对用户数据进行增删改查等操作的功能,自然也就非常的重要了。 本章开始学习用户管理的内容,首先从用户登录开始。 在Django中用app来区别不同功能的模块,达到代码隔离和复用。因为用户管理和博客文章的功能不同,因此需要新建一个专门的app。 进入虚拟环境,运行startapp指令创建新的app: python manage.py startapp userprofile 查看项目目录,发现已经新生成了userprofile目录及其中的文…
上一页
2 / 2