文章目录
- Django初学者指南
- 1 Django简介
- 1.1 Django的历史
- 1.2 使用Django的知名网站
- 1.4 Django的主要特点
- 1.5 Django的工作原理
- 2 Django 使用
- 2.1 Django 支持的 Python 版本
- 2.2 Django 版本
- 3 Django 开发 Web 程序
- 3.1 安装Django
- 3.2 创建Django项目
- 3.3 运行开发服务器
- 3.4 创建Django应用
- 小结
Django初学者指南
欢迎进入Django的世界!如果你对开发数据库驱动的网站感兴趣,Django是一个非常有用的框架。在这篇博文中,我们将介绍Django的基础知识,包括它的历史、特点、如何开始学习,以及一些使用Django的知名网站。
1 Django简介
Django 是一个用于构建 Web 应用程序的高级 Python Web 框架。
Django 提供了一套强大的工具和约定,处理了Web开发中的许多繁琐事务,使得开发者可以专注于编写网站独特的业务逻辑部分,快速构建功能齐全且易于维护的网站。
Django 遵守 BSD 版权,初次发布于 2005 年 7 月, 并于 2008 年 9 月发布了第一个正式版本 1.0 。
Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板(Template)。
1.1 Django的历史
Django诞生于2003年,最初是为了满足新闻网站的需求而开发的。
2005年7月21日,Django被公开发布,并在BSD许可证下提供。
如今,Django已经发展成为一个由全球社区支持的成熟框架。
Django框架的历史始于2003年秋,当时位于劳伦斯《日报世界》报社的网络程序员Adrian Holovaty和Simon Willison开始使用Python构建应用程序。在Django开发的早期,Jacob Kaplan-Moss被聘请加入,这是在Simon Willison的实习结束前不久。
Django最初是为了满足新闻网站的需求而开发的,它的目标是简化复杂、数据库驱动网站的创建。Django强调组件的可重用性和“插件化”,以及少量代码、低耦合、快速开发和不重复自己(DRY)的原则。
2005年7月21日,Django被公开发布,并在BSD许可证下提供。框架的命名是为了纪念吉他手Django Reinhardt,Adrian Holovaty是一位罗姆人爵士吉他演奏者,他的音乐部分地启发了Reinhardt。
到了2008年6月,宣布新成立的Django软件基金会(DSF)将在未来维护Django。DSF是在美国成立的一个独立组织,是一个501©(3)非营利组织。
如今,Django已经发展成为一个由全球社区支持的成熟框架,它的最新稳定版本是5.0.6,于2024年5月7日发布1。Django继续是许多开发者和公司构建现代Web应用程序的首选框架。
1.2 使用Django的知名网站
国外网站:
- Instagram:一个流行的社交媒体平台,专注于图片和视频的分享。
- Pinterest:一个允许用户发现新想法和灵感的平台。
- Disqus:一个广泛使用的博客评论托管服务。
- Mozilla:火狐浏览器的帮助页面。
- NASA:美国国家航空航天局官方网站的某些部分是由Django开发的。
- The Washington Post:一家有影响力的新闻机构,其网站使用Django来处理大量的视图和流量。
国内网站:
- 豆瓣:一个提供电影、书籍、音乐等文化商品综合信息、用户评论及推荐服务的网站。
- 知乎:一个中文问答网站,用户可以在上面提出问题、分享知识、经验和见解。
这些网站的成功运营证明了Django作为一个Web框架的可靠性和高效性。
Django的设计哲学、安全性和快速开发的特点使其成为许多开发者和公司的首选框架。
1.4 Django的主要特点
-
完整性:提供几乎所有开发者可能想要的功能“开箱即用”。
-
多功能性:Django可以(也已经)被用来构建几乎任何类型的网站。
-
安全性:Django对待安全问题的态度:致力于帮助开发者避免常见的安全错误,提供一个旨在自动保护网站的框架。
-
快速开发:Django旨在帮助开发者从概念到完成尽可能快地开发应用程序。
-
可扩展性:适用于流量最繁忙的网站。
-
DRY原则:强调组件的可重用性,遵循不要重复自己的原则。
Django 处理了Web开发中的许多繁琐事务,比如: 用户认证、数据库连接、CRUD(创建、读取、更新、删除)操作、URL路由、表单处理和安全性等,这样开发者就可以专注于编写使网站独特的业务逻辑部分,而不需要重新发明轮子。
Django遵循“包含电池”的理念,提供了几乎所有开发者可能想要的功能“开箱即用”。因为你需要的一切都是框架的一部分,所以它们可以无缝协同工作,遵循一致的设计原则,并且拥有广泛且最新的官方文档。
1.5 Django的工作原理
Django遵循MVT(模型-视图-模板)架构:
- 模型(Model):定义程序的数据结构。即开发者想要展示的数据,通常是来自数据库的数据。
- 视图(View):处理HTTP请求,从模型中获取数据,传递给模板。它是一个处理HTTP请求的函数或方法,它导入相关的模型,并决定发送哪些数据到模板,然后返回最终结果。
- 模板(Template):定义如何显示数据。它是一个描述结果应该如何表示的文件。模板通常是HTML文件,包含网页布局,以及如何显示数据的逻辑。
如果你对创建数据库驱动的网站感兴趣,Django是一个非常有用的框架。
它的ORM(对象关系映射)技术使得与数据库的交流变得更加简单,无需编写复杂的SQL语句。Django还强调组件的可重用性,遵循DRY(不要重复自己)的原则。
2 Django 使用
确定你要使用的 Django 版本。
Django
是 BSD 许可 下的开源版本。建议使用最新版本的 Python 3.x 。
2.1 Django 支持的 Python 版本
因为新版本的 Python 通常会更快,拥有更多特性,而且有更好的支持,推荐使用 Python 3 的最新版本。
使用旧版本的 Django 不会损失任何东西,但你不能利用新版本的 Python 的改进和优化。
与 Django 一起使用的第三方应用程序可以自由设置自己的版本要求。
Django 版本对应的 Python 版本:
Django 版本 | Python 版本 |
---|---|
1.8 | 2.7、3.2(until the end of 2016)、3.3、3.4、3.5 |
1.9、1.10 | 2.7、3.4、3.5 |
1.11 | 2.7、3.4、3.5、3.6、3.7(added in 1.11.17) |
2.0 | 3.4, 3.5, 3.6, 3.7 |
2.1 | 3.5, 3.6, 3.7 |
2.2 | 3.5、3.6、3.7、3.8 (added in 2.2.8)、3.9 (added in 2.2.17) |
3.1 | 3.6、3.7、3.8、3.9(added in 3.1.3) |
3.2 | 3.6、3.7、3.8、3.9、3.10(added in 3.2.9) |
4.0 | 3.8、3.9、3.10 |
4.1 | 3.8、3.9、3.10、3.11(added in 4.1.3) |
4.2 | 3.8、3.9、3.10、3.11、3.12(added in 4.2.8) |
5.0 | 3.10、3.11、3.12 |
5.1 | 3.10、3.11、3.12 |
5.2 | 3.10、3.11、3.12、3.13 |
2.2 Django 版本
通常情况下,如果在生产环境中使用代码,应该使用稳定版本。
Django 项目大约每八个月发布一个完整的稳定版本,并在其间发布错误修复更新。
这些稳定版本包含我们向后兼容性保证所覆盖的 API;如果你针对稳定版本编写代码,在下一个官方版本发布时升级应该不会有任何问题。
功能版本(AB、A.B+1 等)大约每八个月发布一次。这些版本将包含新功能、对现有功能的改进等。
补丁版本(ABC 等)将根据需要发布,以修复错误和/或安全问题。这些版本将与相关功能版本 100% 兼容,除非出于安全原因或为了防止数据丢失而无法兼容。因此,“我应该升级到最新补丁版本吗?”的答案永远是“是”。
某些功能版本将被指定为长期支持 (LTS) 版本。这些版本将在保证的一段时间内(通常为三年)应用安全和数据丢失修复。
发布系列 | 最新发布 | 主流支持终止 | 延长支持结束 |
---|---|---|---|
5.0 | 5.0.6 | 2024 年 8 月 | 2025 年 4 月 |
4.2 长期支持版本 | 4.2.13 | 2023 年 12 月 4 日 | 2026 年 4 月 |
未来版本路线图
发布系列 | 发布日期 | 主流支持终止 | 延长支持结束 |
---|---|---|---|
6.1 | 2026 年 8 月 | 2027 年 4 月 | 2027 年 12 月 |
6.0 | 2025 年 12 月 | 2026 年 8 月 | 2027 年 4 月 |
5.2 长期支持版本 | 2025 年 4 月 | 2025 年 12 月 | 2028 年 4 月 |
5.1 | 2024 年 8 月 | 2025 年 4 月 | 2025 年 12 月 |
3 Django 开发 Web 程序
开始使用 Django 前你需要了解一些基础的 Web 知识及 Python 基础知识。
- Python知识点:函数、面向对象。
- 前端开发:HTML、CSS、JavaScript 。
3.1 安装Django
使用pip安装Django:
pip install django
通过以下命令可以查看已安装的版本:
# python 版本
python -V
# Django 版本
python3 -m django --version
3.2 创建Django项目
创建一个新的Django项目:
django-admin startproject myproject
创建完成后项目的目录结构:
.
|-- myproject
| |-- __init__.py
| |-- asgi.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- manage.py
3.3 运行开发服务器
启动Django的开发服务器:
cd myproject
python manage.py runserver
3.4 创建Django应用
创建一个新的Django应用:
python manage.py startapp myapp
现在整个目录结构如下:
$ tree
.
|-- myproject
| |-- __init__.py
| |-- __init__.pyc
| |-- settings.py
| |-- settings.pyc
| |-- urls.py
| |-- urls.pyc
| |-- views.py
| |-- views.pyc
| |-- wsgi.py
| `-- wsgi.pyc
`-- manage.py
接着,理解模型、视图、模板等基本概念后,就可以开始实践构建你的项目了。
小结
Django 处理了Web开发中的许多繁琐事务,比如: 用户认证、数据库连接、CRUD(创建、读取、更新、删除)操作、URL路由、表单处理和安全性等,这样开发者就可以专注于编写使网站独特的业务逻辑部分,而不需要重新发明轮子。
Django 遵循“包含电池”的理念,提供了几乎所有开发者可能想要的功能“开箱即用”。
Django 的ORM(对象关系映射)技术使得与数据库的交流变得更加简单,无需编写复杂的SQL语句。Django还强调组件的可重用性,遵循DRY(不要重复自己)的原则。
Django 是一个强大的框架,适合那些希望快速开发安全、可维护的网站的开发者。如果你对创建数据库驱动的网站感兴趣,Django是一个非常有用的框架。
- END -
本文摘编自《速学Django:Web开发从入门到进阶》,经出版方授权发布。
推荐语:
为满足广大Python编程学习者的实际需求,本书作者十多年来致力于推动Python编程基础教学,始终专注于产品原型设计、Django前端开发、Python程序设计。
本书是一本适合Django开发快速入门的图书。
本书配合实际操作的案例,清晰明了地讲解了使用Django进行Web项目开发时所涉及的常用知识点,包括框架配置、路由配置、模型、视图、模板、表单、中间件、上下文处理器、代码测试、网站缓存和网站部署等内容。
摘编图书参考:《速学Django:Web开发从入门到进阶》