Django--Blog
Django实战项目--HelloDjangoBlog
阿Q咚咚咚
生活不易,唯有努力
展开
-
Diango博客--25.使用Coverage统计测试覆盖率
文章目录1. 前言2. 安装 Coverage3. 简单配置 Coverage4. 运行 Coverage5. 完善 Coverage 配置6. 生成 HTML 报告7. 完善单元测试1. 前言我们完成了对 blog 应用和 comment 应用这两个核心 app 的测试。现在我们想知道的是究竟测试效果怎么样呢?测试充分吗?测试全面吗?还有没有没有测到的地方呢?单凭肉眼观察难以回答上面的问题...原创 2020-04-23 21:34:28 · 1600 阅读 · 0 评论 -
Diango博客--24.单元测试:测试评论应用
文章目录1. 前言2. 数据基类3.测试 Comment Model4. 测试视图函数5. 测试模板标签1. 前言comments应用的测试和blog应用测试的套路是一样的。先来建立测试文件的目录结构。首先在 comments 应用的目录下建立一个名为 tests 的 Python 包,然后删除 comments 应用下 django 自动生成的 tests.py 文件,防止和 tests ...原创 2020-04-23 20:08:21 · 226 阅读 · 0 评论 -
Diango博客--23.单元测试:测试 blog 应用
文章目录1. 前言2. 搭建测试环境3. 测试模型4. 测试视图5. 测试模板标签6. 测试辅助方法和类1. 前言我们博客功能越来越来完善了,但这也带来了一个问题,我们不敢轻易地修改已有功能的代码了!我们怎么知道代码修改后带来了预期的效果?万一改错了,不仅新功能没有用,原来已有的功能都可能被破坏。此前我们开发一个新的功能,都是手工运行开发服务器去验证,不仅费时,而且极有可能验证不充分。如何...原创 2020-04-22 22:29:40 · 242 阅读 · 0 评论 -
Diango博客--22.Django Haystack 全文检索与关键词高亮
文章目录1. Django Haystack 简介2. 安装 django-haystack和elasticsearch 23. 构建容器来运行 elasticsearch 服务4. 配置 Haystack5. 处理数据6. 配置 URL7. 修改搜索表单8. 创建搜索结果页面9. 高亮关键词10. 建立索引文件11. 修改搜索引擎为中文分词12. 防止标题被截断13. 线上发布1. Djang...原创 2020-04-21 20:04:03 · 456 阅读 · 1 评论 -
Diango博客--21.实现简单的全文搜索
文章目录1. 概述2. 模板:将关键词提交给服务器3. 视图:查找含有搜索关键词的文章4. 视图:绑定 URL1. 概述搜索是一个复杂的功能,但对于一些简单的搜索任务,我们可以使用 Django Model 层提供的一些内置方法来完成,比如Post.objects.filter()方法。现在我们来为我们的博客提供一个简单的搜索功能。博客文章通常包含标题和正文两个部分。当用户输入某个关键词进行...原创 2020-04-20 21:35:27 · 293 阅读 · 0 评论 -
Diango博客--20.开启 Django 博客的 RSS 功能
1.Rss简介博客提供 RSS 订阅应该是标配,这样读者就可以通过一些聚合阅读工具订阅你的博客,时时查看是否有文章更新,而不必每次都跳转到博客上来查看。现在我们就来为博客添加 RSS 订阅功能。RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,它采用 XML 作为内容传递的格式。简单来说就是网站可以把内容包装成符合 RSS 标准的 XML 格式文档。一...原创 2020-04-19 23:11:03 · 207 阅读 · 0 评论 -
Diango博客--19.使用 Docker部署项目到线上服务器
文章目录1.克隆代码到服务器2.创建环境变量文件用于存放项目敏感信息3.在 .production 文件写入下面的内容并保存4.修改 Nginx 配置5.修改项目配置文件6.启动容器7.检查容器启动状况8.配置 HTTPS 证书(没有配置域名无法配置,只能通过服务器 ip 以 HTTP 协议访问)9.浏览器访问域名或者服务器 ip 即可进入博客首页1.克隆代码到服务器$ git clone h...原创 2020-04-16 23:06:31 · 326 阅读 · 0 评论 -
Diango博客--18.使用 Fabric 自动化部署 Django 项目
文章目录1.本地安装 Fabric2.部署过程回顾3.完善项目配置4.修改 BASE_DIR 配置项5.设置 Supervisor 环境变量6.编写 Fabric 脚本7.执行 Fabric 自动部署脚本1.本地安装 Fabric$ pipenv install fabric --dev报错:An error occurred while installing django-pure-...原创 2019-12-29 23:31:05 · 356 阅读 · 0 评论 -
Diango博客--17.统计各个分类和标签下的文章数
文章目录0.思路引导1.Model 回顾2.数据库数据聚合3.使用 Annotate4.在模板中引用新增的属性0.思路引导在我们的博客侧边栏有分类列表和标签列表,显示博客已有的全部文章分类。现在想在分类名和标签名后显示该分类或者标签下有多少篇文章,该怎么做呢?最优雅的方式就是使用 django 的 annotate 方法。1.Model 回顾回顾一下我们的 model 代码,django ...原创 2019-12-28 23:30:57 · 660 阅读 · 0 评论 -
Diango博客--16.稳定易用的 Django 分页库,完善分页功能(二)
文章目录0.思路引导1.分页效果概述2.分页思路3.Django 第三方拓展:django-pure-pagination4.自定义模板0.思路引导1)在前面我们通过 Django Pagination 实现简单分页 中,我们实现了一个简单的分页导航。但效果有点差强人意,我们只能点上一页和下一页的按钮进行翻页。2)比较完善的分页效果应该像下面这样,但想实现这样一种效果,Django Pagi...原创 2019-12-28 22:16:57 · 128 阅读 · 0 评论 -
Diango博客--15.通过 Django Pagination 实现简单分页(一)
文章目录0.思路引导1.Paginator 类的常用方法2.用 Paginator 给文章列表分页3.在模板中设置分页导航4.效果展示0.思路引导1)当博客上发布的文章越来越多时,通常需要进行分页显示,以免所有的文章都堆积在一个页面,影响用户体验。2)Django 内置的 Pagination 能够帮助我们实现简单的分页功能1.Paginator 类的常用方法分页功能由 Django 内...原创 2019-12-28 21:20:46 · 156 阅读 · 0 评论 -
Diango博客--14.使用 Django 项目中的 ORM 编写伪造测试数据脚本
文章目录0.思路引导1.脚本目录结构2.使用 Faker 快速生成测试数据3.批量生成测试数据4.执行脚本5.效果展示0.思路引导1)为了防止博客首页展示的文章过多以及提升加载速度,可以对文章列表进行分页展示。2)不过这需要比较多的文章才能达到分页效果,但本地开发时一般都只有几篇测试文章,如果一篇篇手工添加将会非常麻烦。3)解决方案是我们可以写一个脚本,自动生成任意数量的测试数据。脚本写好...原创 2019-12-28 17:39:22 · 268 阅读 · 0 评论 -
Diango博客--13.将“视图函数”类转化为“类视图”
文章目录0.思路引导1.ListView2.将 index 视图函数改写为类视图3.将 category 视图函数改写为类视图4.将 archive 视图函数改写成类视图5.将 tag 视图函数改写成类视图6.DetailView7.将DetailView视图函数改写成类视图0.思路引导1)在开发网站的过程中,有一些视图函数虽然处理的对象不同,但是其大致的代码逻辑是一样的。比如一个博客和一个论...原创 2019-12-28 16:33:00 · 187 阅读 · 0 评论 -
Diango博客--12.开发 Django 博客文章阅读量统计功能
文章目录0.models中增加新字段1.models中增加方法2.迁移数据库3.修改视图函数4.在模板中显示阅读量0.models中增加新字段为了记录文章的浏览量,需要在文章的数据库表中新增一个用于存储阅读量的字段。文件位置:blog/models.pyclass Post(models.Model): # ... 其它已有字段 # 新增 views 字段记录阅读量 ...原创 2019-12-28 15:14:40 · 390 阅读 · 0 评论 -
Diango博客--11.Nginx + Gunicorn + Supervisor 方式部署
文章目录0.标题1.创建一个超级用户2.更新 SQLite33.安装 Python3 、pip3.6以及 Pipenv4.部署代码5.使用 Gunicorn6.启动 Nginx 服务器0.标题1.创建一个超级用户2.更新 SQLite3为了方便,我们博客使用了 SQLite3 数据库,django 2.2 要求 SQLite3 数据库版本在 3.8.3 以上,而 CentOS 7 系统自带...原创 2019-12-18 12:35:14 · 483 阅读 · 0 评论 -
Diango博客--10.交流的桥梁“评论功能”
文章目录0.思路引导1.标题2.标题3.标题4.标题5.标题6.标题7.标题8.标题9.标题10.标题11.标题12.标题13.标题14.标题15.标题16.标题17.标题18.标题0.思路引导本文将创建一个新的应用,即在博客详情页的底部,增加评论功能。效果显示如下所示:具体的操作将从头到尾进行记录。1.标题2.标题3.标题4.标题5.标题6.标题7.标题8.标题9.标...原创 2019-12-12 23:55:29 · 236 阅读 · 0 评论 -
Diango博客--9.归档、分类和标签页
文章目录0.思路引导1.归档页面2.分类页面3.标题4.标题0.思路引导1.归档页面2.分类页面3.标题4.标题1)2)3)原创 2019-12-09 22:46:58 · 238 阅读 · 0 评论 -
Diango博客--8.解锁博客侧栏
文章目录0.思路引导1.[最新文章] 模板标签2.[归档] 模板标签3.[分类] 模板标签4.[标签云] 模板标签5.使用自定义的模板标签0.思路引导博客侧边栏有四项内容:最新文章、归档、分类和标签云,效果展示如下:这些内容相对比较固定和独立,且在各个页面都会显示,如果像文章列表或者文章详情一样,从视图函数中获取这些数据然后传递给模板,则每个页面对应的视图函数里都要写一段获取这些内容的代码...原创 2019-12-09 21:35:29 · 191 阅读 · 0 评论 -
Diango博客--7.自动生成文章摘要
文章目录0.思路引导1.方法一:覆写 save 方法2.方法二:使用 truncatechars 模板过滤器0.思路引导博客文章的模型有一个 excerpt 字段,这个字段用于存储文章的摘要。若在 django admin 后台手动为文章输入摘要,每次手动输入摘要比较麻烦。对有些文章来说,只要摘取正文的前 N 个字符作为摘要,以便提供文章预览就可以了。因此我们来实现如果文章没有输入摘要,...原创 2019-12-08 20:35:29 · 226 阅读 · 0 评论 -
Diango博客--6.Markdown 文章自动生成目录
文章目录0.思路引导1.在文中插入目录2.在页面的任何地方插入目录3.美化标题的锚点 URL0.思路引导Markdown 在解析内容的同时还可以自动提取整个内容的目录结构,本文内容将从以下几个方面展开:1)在文中插入目录;2)在页面的任何地方插入目录;3)美化标题的锚点 URL。1.在文中插入目录博客的 Post(文章)模型,其中 body 是我们存储 Markdown 文本的字段:...原创 2019-12-08 19:43:33 · 199 阅读 · 0 评论 -
Django博客--5.让博客支持 Markdown 语法和代码高亮
文章目录0.前言1.安装 Python Markdown2.在 detail 视图中解析 Markdown3.safe 标签4.代码高亮5.效果展示0.前言Markdown 是一种 HTML 文本标记语言,只要遵循它约定的语法格式,Markdown 的解析工具就能够把 Markdown 文档转换为标准的 HTML 文档,从而使文章呈现更加丰富的格式,例如标题、列表、代码块等等 HTML 元素。...原创 2019-12-05 23:11:00 · 272 阅读 · 0 评论 -
Django博客--4.开发博客文章详情页
文章目录0.思路引导1.设计文章详情页的 URL2.获取文章的URL3.编写 detail 视图函数4.编写详情页模板5.更改主页中跳转详情页的地址链接6.模板继承--抽取base.html7.模板继承--修改 index.html使其继承base.html8.模板继承--修改detail.html使其继承base.html9.结果展示0.思路引导情景:博客首页展示的是所有文章的列表,当用户看...原创 2019-12-05 21:23:17 · 353 阅读 · 0 评论 -
Django博客--3.创作后台开启
文章目录0.创建admin后台管理员账号1.在 admin 后台注册模型2.汉化blog板块标题3.汉化应用下的各个model模块4.汉化model中的label5.文章列表显示更加详细的信息6.简化新增文章的表单7.自动设置文章作者为当前用户8.设定创建时间为当前时间9.设定修改建时间为保存时的时间0.创建admin后台管理员账号运行 pipenv run python manage.py ...原创 2019-12-04 23:30:19 · 167 阅读 · 0 评论 -
Diango博客--2.博客从“裸奔”到“有皮肤”
文章目录0.思路引导1.更改视图函数,从数据库中获取数据2.网上下载模板,添加静态文件3.修改模板Templates中css、js文件的加载路径4.修改模板,引入模板变量,获取数据库数据0.思路引导前文的Hello World 级别的视图函数特别简单,且毫无美感,本文有以下两个重点:1)将借用网上的模板文件,丰富模板内容;2)从数据库中获取数据,并推送到模板文件的模板变量中。1.更改视...原创 2019-12-04 17:03:26 · 169 阅读 · 0 评论 -
Diango博客--1.Django的接客之道
文章目录0.项目主目录1.实现最简单的HelloWorld2.实现最简单的HelloWorld(使用Templates)0.项目主目录1.实现最简单的HelloWorld1)blog应用下新建url.py,并编辑文件位置:blog/url.pyfrom django.urls import pathfrom . import viewsurlpatterns = [ pa...原创 2019-12-04 16:20:47 · 152 阅读 · 0 评论