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 版本。

DjangoBSD 许可 下的开源版本。建议使用最新版本的 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开发从入门到进阶》

在这里插入图片描述

相关推荐

  1. 网站开发:初学者深入指南

    2024-06-16 09:16:03       45 阅读
  2. C语言初学者入门指南

    2024-06-16 09:16:03       20 阅读
  3. Ubuntu Linux 入门指南:面向初学者

    2024-06-16 09:16:03       59 阅读
  4. PyTorch:初学者全面指南torch函数使用

    2024-06-16 09:16:03       51 阅读
  5. 算法初学者指南:理解排序算法

    2024-06-16 09:16:03       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-16 09:16:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-16 09:16:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-16 09:16:03       82 阅读
  4. Python语言-面向对象

    2024-06-16 09:16:03       91 阅读

热门阅读

  1. 【DPDK学习路径】七、创建RX/TX队列

    2024-06-16 09:16:03       38 阅读
  2. 一网双引擎的定义和优势

    2024-06-16 09:16:03       29 阅读
  3. R 绘图 - 条形图

    2024-06-16 09:16:03       30 阅读
  4. 面试题——Redis

    2024-06-16 09:16:03       29 阅读
  5. RPC协议

    RPC协议

    2024-06-16 09:16:03      38 阅读
  6. 【对话型应用 API详细介绍】

    2024-06-16 09:16:03       33 阅读
  7. HTML 颜色名:网页设计的调色板

    2024-06-16 09:16:03       30 阅读
  8. SQL RIGHT JOIN 详解

    2024-06-16 09:16:03       38 阅读
  9. 医疗图像自动轮廓勾画

    2024-06-16 09:16:03       31 阅读