惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Exploit Database - CXSecurity.com
J
Java Code Geeks
H
Help Net Security
B
Blog RSS Feed
G
Google Developers Blog
博客园 - 司徒正美
MongoDB | Blog
MongoDB | Blog
量子位
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
P
Proofpoint News Feed
小众软件
小众软件
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
V
V2EX
月光博客
月光博客
C
Check Point Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
A
Arctic Wolf
Help Net Security
Help Net Security
Schneier on Security
Schneier on Security
D
DataBreaches.Net
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Palo Alto Networks Blog
T
Tenable Blog
L
LangChain Blog
Attack and Defense Labs
Attack and Defense Labs
Google DeepMind News
Google DeepMind News
N
News and Events Feed by Topic
Forbes - Security
Forbes - Security
F
Fortinet All Blogs
Recent Announcements
Recent Announcements
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
大猫的无限游戏
大猫的无限游戏
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Y
Y Combinator Blog
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Engineering at Meta
Engineering at Meta
NISL@THU
NISL@THU
GbyAI
GbyAI
博客园 - Franky
S
Secure Thoughts
有赞技术团队
有赞技术团队
PCI Perspectives
PCI Perspectives
U
Unit 42

追梦人物的博客

0x05:Merkle Tree & Patricia Trie 0x04:ECDSA - 以太坊设计与实现 LeetCode 105 从前序与中序遍历构造二叉树 迭代算法原理 + 完整证明 0x03:Address - 以太坊设计与实现 0x02:Secp256k1 - 以太坊设计与实现 0x00:专栏开篇 - 以太坊设计与实现 0x01:RLP 编码 - 以太坊设计与实现 Bellman-Ford 算法原理及其在 DeFi 套利中的应用 - 追梦人物的博客 迪杰斯特拉(Dijkstra)最短路径算法原理、实现与证明 - 追梦人物的博客 实战:CEX-DEX 稳定币套利监控程序开发 - 追梦人物的博客 CEX-DEX 稳定币套利模型 - 追梦人物的博客 Uniswap 手续费和协议费机制剖析 - 追梦人物的博客 Uniswap 流动性机制及相关数学原理分析 - 追梦人物的博客 uv 替代 pyenv + pipx + poetry 环境管理实践 Rust 项目从创建到发布 - 追梦人物的博客 VS Code 调试 Python - 追梦人物的博客 比特币跨市场套利的数学模型 - 追梦人物的博客 ERC-20 相关知识点总结 - 追梦人物的博客 Django 老项目如何从 SQLite 迁到 PostgreSQL 自动生成接口文档 - HelloDjango - django REST framework 教程 单元测试 - HelloDjango - django REST framework 教程 限制接口访问频率 - HelloDjango - django REST framework 教程 API 版本管理 - HelloDjango - django REST framework 教程 如何在 Windows 下搭建高效的 django 开发环境 拓展Python Markdown - 追梦人物的博客 加缓存为接口提速 - HelloDjango - django REST framework 教程 基于 drf-haystack 实现文章搜索接口 - HelloDjango 评论接口 - HelloDjango - django REST framework 教程 实现分类、标签、归档日期接口 - HelloDjango - django REST framework 教程 在接口返回Markdown解析后的内容 - HelloDjango - django REST framework 教程 文章详情接口 - HelloDjango - django REST framework 教程 分页 - HelloDjango - django REST framework 教程 使用视图集简化代码 - HelloDjango - django REST framework 教程 用类视图实现首页 API - HelloDjango - django REST framework 教程 实现博客首页文章列表 API - HelloDjango - django REST framework 教程 初始化 RESTful API 风格的博客系统 - HelloDjango django-rest-framework 是什么鬼? - HelloDjango - django REST framework 教程 Coverage.py 统计测试覆盖率 - HelloDjango - Django博客教程(第二版) 单元测试:测试评论应用 - HelloDjango - Django博客教程(第二版) 单元测试:测试 blog 应用 - HelloDjango Django Haystack 全文检索与关键词高亮 - HelloDjango Django 博客实现简单的全文搜索 - HelloDjango - Django博客教程(第二版) 开启 Django 博客的 RSS 功能 - HelloDjango 统计各个分类和标签下的文章数 - HelloDjango - Django博客教程(第二版) 稳定易用的 Django 分页库,完善分页功能 - HelloDjango 通过 Django Pagination 实现简单分页 - HelloDjango 在脚本中使用 ORM:Faker 批量生成测试数据 - HelloDjango Django 官方推荐的姿势:类视图 - HelloDjango - Django博客教程(第二版) Django 使用 union 合并不同模型(Model) 的查询集(QuerySet) 开发博客文章阅读量统计功能 - HelloDjango - Django博客教程(第二版) 使用 Docker 让部署 Django 项目更加轻松 - HelloDjango 使用 Certbot 向 Let's Encrypt 免费申请 HTTPS 证书 - HelloDjango 使用 Fabric 自动化部署 - HelloDjango 博客代码开源啦 - 追梦人物的博客 (赠书)推荐一本django书籍:Django企业开发实战 - 追梦人物的博客 Nginx+Gunicorn+Supervisor 部署 Django 博客应用 - HelloDjango 优化博客功能细节,提升使用体验 - HelloDjango - Django博客教程(第二版) 交流的桥梁:评论功能 - HelloDjango - Django博客教程(第二版) 分类、归档和标签页 - HelloDjango - Django博客教程(第二版) 页面侧边栏:使用自定义模板标签 - HelloDjango - Django博客教程(第二版) 自动生成文章摘要 - HelloDjango - Django博客教程(第二版) Markdown 文章自动生成目录,提升阅读体验 - HelloDjango - Django博客教程(第二版) 让博客支持 Markdown 语法和代码高亮 - HelloDjango 开发博客文章详情页 - HelloDjango - Django博客教程(第二版) 创作后台开启,请开始你的表演 - HelloDjango - Django博客教程(第二版) 博客从“裸奔”到“有皮肤” - HelloDjango - Django博客教程(第二版) Django 的接客之道 - HelloDjango - Django博客教程(第二版) Django 迁移、操作数据库 - HelloDjango - Django博客教程(第二版) 创建 Django 博客的数据库模型 - HelloDjango 开始进入 django 开发之旅 - HelloDjango "空空如也"的博客应用 - HelloDjango - Django博客教程(第二版) 一种自顶而下的Python装饰器设计方法 - 追梦人物的博客 Python提取支付宝和微信支付二维码 - 追梦人物的博客 2018 - 我的学生生涯最后一年回顾 - 追梦人物的博客 批量清除todo练习参考答案 - Vue 2.x Todo 教程练习参考答案 筛选练习参考答案 - Vue 2.x Todo 教程练习参考答案 删除todo练习参考答案 - Vue 2.x Todo 教程练习参考答案 编辑todo练习参考答案 - Vue 2.x Todo 教程练习参考答案 添加todo练习参考答案 - Vue 2.x Todo 教程练习参考答案 标为完成练习参考答案 - Vue 2.x Todo 教程练习参考答案 入门仪式_Hello_Vue练习参考答案 - Vue 2.x Todo 教程练习参考答案 组件化todo应用 - Vue 2.x Todo 教程 批量清除todo - Vue 2.x Todo 教程 本地存储 - Vue 2.x Todo 教程 筛选 - Vue 2.x Todo 教程 还剩多少todo未完成 - Vue 2.x Todo 教程 自定义指令实现自动聚焦 - Vue 2.x Todo 教程 全部标为完成 - Vue 2.x Todo 教程 删除todo - Vue 2.x Todo 教程 编辑todo - Vue 2.x Todo 教程 添加todo - Vue 2.x Todo 教程 标为完成 - Vue 2.x Todo 教程 UI - Vue 2.x Todo 教程 显示todo列表 - Vue 2.x Todo 教程 入门仪式:Hello Vue - Vue 2.x Todo 教程 在学习django-rest-framework时收集的学习资料推荐 - 追梦人物的博客 区块链理论与应用研究小组成员招募书 - 追梦人物的博客 Python界网红,豆瓣工程师董伟明加了我的QQ后 - 追梦人物的博客 招募Django学习小组项目组核心成员 - 追梦人物的博客
结束 or 开始? - HelloDjango
2020-03-21 · via 追梦人物的博客

我们已经成功地开发了一个功能比较完备的个人博客,是时候来总结一下我们的工作了。

在教程的前两篇,我们介绍了如何搭建 django 开发环境,如何创建 django 项目以及 django 应用,这是我们进行 django 项目开发的基础。

第 3、4 篇讲了 django ORM 的基础操作。ORM 是 django 核心中的核心,不仅 django 自带的应用底层全都依赖于 ORM,大部分使用 django 构建的应用基本也离不开 django ORM 的操作,所以能否熟练掌握 django 的 ORM API 决定了能否写出高质量、高性能的 django 应用。

第 5、6 篇讲解了 django 基本的视图函数,视图函数的作用是接收一个 HTTP 请求,根据这个请求的意图返回相应的 HTTP 响应。在这个请求处理的过程中,通常都会涉及到使用 ORM 进行数据库的增删改查操作。

第 7 篇介绍了 django 的杀手锏应用,开箱即用的 Admin 管理台。我们可以通过这个管理台直接对数据库中的数据进行增删改查操作。

第 9、10 篇介绍了 Markdown 的使用,对于博客、技术论坛之类的应用,使用 Markdown 来撰写内容是一个常见的需求。

第 12、13 篇介绍了如何自定义模板标签并使用它们。模板标签用于 django 的模板系统中,用来生成 HTML 页面。django 的模板系统自带了大量的模板标签。但如果自带的标签不满足需求,我们就可以拓展 django 模板系统的 API 来自定义模板标签。

第 14 篇,我们利用上述学习到的知识开发了一个独立的 django 评论应用。这里面我们还初步接触了表单的使用。django 的表单是对 HTML 表单的封装,它在后台完成数据校验、清理等功能,并对非法的表单输入返回给客户端友好的错误提示。

第 16、17、18、19 向大家介绍了运维方面的知识,包括如何在服务器上部署 django 应用,如何编写自动化脚本来全自动部署,如何给网站开启 HTTPS 以提高安全性。特别是使用 Docker 进行部署后,我们把整个 django 部署的过程缩减到只需线上执行几条命令就能完成,Docker 帮助我们极大简化了部署流程。

第 21 篇我们介绍了基于类的视图和通用类视图。之前说了,django 的视图本质上是一个函数,它接收一个 HTTP 请求,返回一个 HTTP 响应。类视图虽然是一个类,但这只是针对开发者而言,django 通过 Python 魔法将类转化为一个可被调用的函数。使用类的好处是,它允许被继承,因此在某些情况下可以提高代码的复用性。

第 22 篇演示了如何在 Python 脚本里面独立地使用 django 的 ORM。一般要使用 django 的 ORM 必须启动整个 django 项目,而如果要在独立的脚本中使用的话,就必须进行一些额外的设置。

第 23 篇我们介绍了如何使用 django 第三方库,django 的强大不仅在于它自身功能的完备程度,更在于其繁荣的社区。大量开发者在开源平台发布了很多优质的 django 拓展应用,涵盖了 web 开发的方方面面。这里我们只介绍了一个分页应用,更多应用大家可以在 GitHub 通过搜索关键词 django 进行探索。

第 27、28 篇我们介绍了搜索功能的实现。一开始使用的是比较简单的搜索方式,利用之前所学的 django 知识就能完成。不过为了更好的搜索体验,我们进一步引入了 elasticsearch 这个专业的搜索服务来提供搜索功能,同时使用了一个 django 第三方库 django-haystack 来将 elasticsearch 和 django 无缝对接。同时可以看到,有了 Docker 容器技术,引入一个外部服务变得非常简单。

第 29、30、31 篇我们对博客补充了完善的单元测试,测试过程中我们发现了一些隐藏的 bug 并进行了修复,由此测试的重要性可见一斑。此外,为了衡量测试的质量,我们使用 coverage.py 对代码测试覆盖率进行了统计,越高的测试覆盖率说明测试越充分,程序出现 bug 的几率也就越小。

现在,我们已经有了一个功能比较完备的个人博客应用。而且,在测试的保障护航下,我们可以在不破坏现用功能的情况下,轻松加入新的功能。

教程进行到这里,HelloDjango 博客教程就要准备告一段落了,大部分 web 开发中的需求,你都可以通过教程中讲到的知识点,结合 django 的官方文档来实现。

不过,真的要结束了吗?我的回答是没有也不想结束。

django 中还有很多值得介绍的地方,就拿博客来说,我们还可以做这些很酷的功能:

  • 支持用户登录,甚至使用 GitHub、新浪微博等第三方应用登录
  • 支持多级评论
  • 国际化
  • 使用缓存进行性能优化
  • 支持邮件订阅,有新的博客就发送邮件提醒订阅者

等等,这些对于其他 Web 系统来说,基本也都是必不可少的。

所以,HelloDjango 博客项目会继续以这样的形式继续下去:

围绕着某一个功能进行开发,功能开发完成之后附带输出一篇详细介绍功能实现原理和过程的教程。我希望 HelloDjango 博客项目不仅仅是一个教学演示项目,也不仅仅是一个高质量、功能完备的 django 第三方博客应用,而是两者都是!

这些教程会及时通过 HelloGitHub 微信公众号或者 追梦人物的博客 进行更新,敬请关注!

此外,虽然 HelloDjango 博客项目教程定期更新已经结束,但接下来我会开始以定期更新的方式向大家介绍如何django-restframework + Vue 或者 React 这种更加现代化的前后端分离开发方式,大量公司都采用这种开发方式,如果你以找工作为目的而学习 django 的话,怎么能不学习这种开发模式呢?

所以还是那句话,敬请关注 HelloGitHub 微信公众号以及 追梦人物的博客,免费学习全栈开发。

-- EOF --