Full Stack Python logo Full Stack Python

全部主题 | Blog | 时讯 | @fullstackpython | Facebook | 源码

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 学习清单

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

  • 依据 "polls" 这个教程进行练习。

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

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

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

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

关于 Django 应用,接下来还要学习什么知识?

我的应用可以运行但是很难看。如何美化用户界面?

怎样将现有的 Web API 整合到我的应用中?

我已经创建了一个 Python Web 应用,那我如何部署呢?

#### 在这里注册以便每月能收到一份邮件资料,内容包含本站的主要更新、教程和 Python 书籍的打折码等。

赞助商

Real Python logo 如果你要找一本循序渐进的 Django 教程,我推荐你 看看 Real Python.

邮件获取更新

##### 注册以便每月能收到一份邮件资料,内容包含本站的主要更新和 Python 教程。

目录

1. 简介学习编程为什么用 Python?Python 2 还是 3?企业 PythonPython CommunityBest Python Podcasts最佳 Python 资源最佳 Python 视频2. 开发环境VimEmacs3. 核心语言生成器推导式4. Web 开发Web 框架DjangoFlaskBottlePyramidMorepath其它 Web 框架Web 设计级联样式表 (CSS)JavaScriptWebSockets模板引擎Web 应用安全静态网站生成器Jinja25. 数据关系型数据库NoSQL 数据存储对象关系映射器PostgreSQLMySQLSQLite6. Web APIsAPI 集成API 的创建Twilio7. 部署服务器平台即服务(PaaS)操作系统Web 服务器WSGI 服务器源码控制应用程序依赖静态内容任务队列配置管理持续集成日志监控Web 分析Docker缓存微服务DevOpsNginxApache HTTP 服务器CaddyGreen Unicorn (Gunicorn)UbuntuPelicanLektorMkDocs8. 测试单元测试集成测试代码度量调试9. MetaBotsChange LogFuture DirectionsAbout the AuthorSQLAlchemyPeewee …或者显示全部目录内容.

Django

重要的更新内容会通过 Twitter 账号@fullstackpython发布。


需要更加详细的教程吗?请看 《The Full Stack Python Guide to Deployments》。

Chapters

1. 简介2. 开发环境3. 核心语言4. Web 开发 » Django 5. 数据6. Web APIs7. 部署8. 测试9. Meta …or view the full table of contents.


This site is based on Matt Makai's project Full Stack Python, thanks for his excellent work!

此网站由 @haiiiiiyun开源爱好者们 共同维护。 若发现错误或想贡献,请访问: Github fullstackpython.cn 项目