title: Django category: page slug: django sortorder: 0403 toc: False sidebartitle: Django meta: 在 Full Stack Python 上学习更多 Django 知识, Django 是一个流行的且功能完备的 Python Web 框架。 authors: haiiiiiyun.github.io updated: 2016-06-12 08:27

Django

Django 是一个广为使用的 Python Web 应用框架,它奉行 “包含一切” 的哲学。该理念即为:创建 Web 应用所需的通用功能都应该包含到框架中,而不应存在于独立的软件包中。

Official Django logo. Trademark Django Software Foundation.

例如,身份验证URL 路由模板系统对象关系映射 (ORM) 和 数据库迁移 (版本 1.7) 等功能都已包含在 Django 框架 中。 Flask 框架与 Django 相比,并没有包含这么多的功能,例如它还需要一个独立的 Flask-Login 库来实现用户身份验证。

包含一切和易扩展性是实现框架时采用的两种不同哲学罢了,再两种方式各有千秋,不能说哪一种会再好。

Django 是对Web 框架 概念的一种实现。在 Web 开发 那一章你可以框架的各部分组件是如何协同工作的,或者到 总目录 页去查看其它所有主题。

为什么说 Django Web 框架是一个不错的选择

自创建以来, Django 项目的稳定性、高性能和它的社区在过去的十年中有了长足的发展。现在已经有大量的在线资源和图书资料,从中你能找到详细的教程和实践指南。该框架还在不断地往新版本中增加诸如 数据迁移 新功能。

我非常推荐 Python Web 开发新手使用 Django 框架,因为它的官方文档和一些教程的质量在软件开发界都是数一数二的。许多城市都有 Django 团体,如 Django DistrictDjango BostonSan Francisco Django,因此新手在碰到难题时能获得帮助。

虽然有 通过使用 Django 来学习 Python 是不好的 这样的争议。但是,对于先前已经花时间学过 Python 语法和语义,然后才转入 Web 开发的人来说,这样的说法是站不住脚的。

Django 图书和教程

已经有大量的免费或低价的 Django 资源。不过 Django 是在 10 年前发布的,并且之后又进行了大量的更新,因此当你要找一本与时俱进的 Django 图书时,应该先看看下面的这份列表,或者读下这篇文章 当前的 Django 图书,截止到 Django 1.8,1.9。

Django 视频资源

除了文章,你还想找 Django 视频吗?在 最佳 Python 视频 页上有一节专门针对 Django 和 Web 开发的。

Django 迁移

  • Paul Hallett 发布在 Twilio 博客上的文章 Django 1.7 应用升级详细指南 讲述了他对 django-twilio 包的使用经验。

  • Real Python 上的 迁移入门教程 探讨了 South 与 Django 内置的迁移功能之间的区别,并介绍了它们的使用方法。

  • Andrew Pinkham 写的 ”升级到 Django 1.7“ 系列文章是很好的学习材料,据此你能了解该版本主要进行了哪些更新,以及能学到应如何相应地对你的 Django 项目进行更新。 第 1 部分第 2 部分第 3 部分第 4 部分 现在都能找到。

  • 不下线迁移 Django 展示了如何在 Django 站点不下线的情况下进行数据迁移。

1.9+ 中的通道

通道是 Django 1.9 的一种新机制(作为一个独立应用,稍后会合并到核心框架中),它能基于 WebSocket 实现浏览器与服务器之间的实时双向通讯。

Django 测试

Django 及 Angular (Djangular) 资源

Django ORM 资源

Django 有自己内置的的对象关系映射器(ORM), 通常指代为 “the Django ORM”。到 Python 对象关系映射页 上了解 Django ORM 相关的更多信息,那上面有一节是专门解读 Django ORM的,当然上面还有其它的资源和教程。

静态和媒体文件

Django 初级开发人员对于如何部署和处理静态和媒体文件会感觉困惑。下面列出的资料以及 静态内容 那一页上的资源对于搞清楚如何正确处理这些文件很有帮助。

开源 Django 示例项目

  • 使用 Django 和 Twilio 制作浏览器通话器 展示了如何利用 Django 和 Twilio 客户端 来创建一个 Web 应用,将用户的浏览器改造成一个全功能的电话机。非常有趣。

  • Txt 2 React 是一个 Django Web 应用,它能让观众一边观看演示,一边输入反馈信息或者提问。

  • Openduty 是一个网站状态检查和报警系统,类似于 PagerDuty。

  • Courtside 是一个收集体育活动信息的 Web 应用,由 PyCoder‘s Weekly 的作者编写和维护。

  • Django 交互式语音应答系统 (IVR),它的两份 Web 应用代码库: 第 1 部分第 2 部分 向你展示了如何创建一个真正有趣的 Django 应用 。它还有相应的 文章, 对其中的每一个步骤进行了详细的讲解。

  • Taiga 是一个项目管理工具,后端用 Django 开发,前端用 AngularJS 开发。

Django 项目模板

Django 学习清单

  1. 在你的本地开发机器上 安装 Django

  2. 依据 “polls” 这个教程进行练习。

  3. 依据 “Django 资源” 那一节上的相关教程,创建一些简单的应用。

  4. 参考 官方文档 以及上面的资源链接,开始编写你自己的 Django 项目。当然你会犯错误,但这是你学习如何正确的创建应用的必经之路。

  5. 阅读 2 Scoops of Django 来理解 Django 的最佳实践,并学会什么是创建 Django Web 应用的更好方式。

  6. 查看 部署那一章,将你的 Django 项目发布到网上。