Django初学者指南

news2024/11/25 22:40:31

文章目录

  • 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.82.7、3.2(until the end of 2016)、3.3、3.4、3.5
1.9、1.102.7、3.4、3.5
1.112.7、3.4、3.5、3.6、3.7(added in 1.11.17)
2.03.4, 3.5, 3.6, 3.7
2.13.5, 3.6, 3.7
2.23.5、3.6、3.7、3.8 (added in 2.2.8)、3.9 (added in 2.2.17)
3.13.6、3.7、3.8、3.9(added in 3.1.3)
3.23.6、3.7、3.8、3.9、3.10(added in 3.2.9)
4.03.8、3.9、3.10
4.13.8、3.9、3.10、3.11(added in 4.1.3)
4.23.8、3.9、3.10、3.11、3.12(added in 4.2.8)
5.03.10、3.11、3.12
5.13.10、3.11、3.12
5.23.10、3.11、3.12、3.13

2.2 Django 版本

通常情况下,如果在生产环境中使用代码,应该使用稳定版本。

Django 项目大约每八个月发布一个完整的稳定版本,并在其间发布错误修复更新。

这些稳定版本包含我们向后兼容性保证所覆盖的 API;如果你针对稳定版本编写代码,在下一个官方版本发布时升级应该不会有任何问题。

功能版本(AB、A.B+1 等)大约每八个月发布一次。这些版本将包含新功能、对现有功能的改进等。

补丁版本(ABC 等)将根据需要发布,以修复错误和/或安全问题。这些版本将与相关功能版本 100% 兼容,除非出于安全原因或为了防止数据丢失而无法兼容。因此,“我应该升级到最新补丁版本吗?”的答案永远是“是”。

某些功能版本将被指定为长期支持 (LTS) 版本。这些版本将在保证的一段时间内(通常为三年)应用安全和数据丢失修复。

在这里插入图片描述

发布系列最新发布主流支持终止延长支持结束
5.05.0.62024 年 8 月2025 年 4 月
4.2 长期支持版本4.2.132023 年 12 月 4 日2026 年 4 月

未来版本路线图

发布系列发布日期主流支持终止延长支持结束
6.12026 年 8 月2027 年 4 月2027 年 12 月
6.02025 年 12 月2026 年 8 月2027 年 4 月
5.2 长期支持版本2025 年 4 月2025 年 12 月2028 年 4 月
5.12024 年 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开发从入门到进阶》

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1827483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】【期末考】【基本概念和语法】概括总结——期末速成

目录 1. C简介 C的历史与发展 C的特点与优势 2. 基本语法 注释 数据类型与变量 常量 运算符 输入与输出 3. 控制结构 条件语句 循环语句 4. 函数 函数定义与声明 参数传递 返回值 函数重载 5. 数组与字符串 一维数组 多维数组 字符串处理 6. 指针 指针的…

数字电路中二进制的数据表达

文章目录 1. 二进制数据表达 1.1 二进制简介 1.2 用二进制表达文字 1.2.1 最开始的表达方式 1.2.2 通讯系统的编码和解码 1.2.3 集成电路 1.2.4 ASCII编码 1.2.5 GBK编码 1.2.6 Unicode编码 2. 用二进制表达图像 2.1 图片像素化 2.2 像素数字化 2.3 二值图像 2.4…

HTML+CSS 旋转呼吸加载器

效果演示 实现了一个旋转加载动画效果,包括一个圆形的加载框和两个不同颜色的圆形旋转动画。加载框和动画都使用了CSS的动画属性,实现了旋转和缩放的效果。整个加载动画的样式比较简单,使用了黑色和黄色的背景色,以及白色的文本颜…

哈希表、递归在二叉树中的应用-1372. 二叉树中的最长交错路径

题目链接及描述 1372. 二叉树中的最长交错路径 - 力扣(LeetCode) 题目分析 题目所述,计算在二叉树中交替遍历的最大深度【左->右->左】【右->左->右】,例如对于从当前根节点root出发,则此时遍历方向有两个…

【健身经验】2 圆肩

1、普拉提是针对小肌肉群锻炼,可以改善圆肩,圆肩就是因为背部没有力量,胸前也没有力量,因为平常没有用到这些肌肉 普拉提会用到小肌肉群,对于体态的纠正会比较好 2、肩背形态其实是发力问题,可以练习&…

springboot优雅shutdown时如何保障异步线程的安全

我前面写了一篇springboot优雅shutdown的文章,看起来一切很美好。 https://blog.csdn.net/chenshm/article/details/139640775 那是因为没有进行多线程测试。如果一个请求中包括阻塞线程(主线程)和非阻塞线程(异步线程&#xff09…

“二分图匹配策略:匈牙利算法详解与应用实践“

二分图的最大匹配 给定一个二分图,其中左半部包含 𝑛1 个点(编号 1∼𝑛1),右半部包含𝑛2 个点(编号1∼𝑛2),二分图共包含 𝑚 条边。 …

ollama 多模态llava图像识别理解模型使用

参考: https://llava-vl.github.io/ https://ollama.com/blog/vision-models https://blog.csdn.net/weixin_42357472/article/details/137666022 下载: ollama run llava:13bcli使用 图片地址前面空格就行 describe this image: /ai/a1.jpg

最新版点微同城源码34.7+全套插件+小程序前后端(含安装教程)

模板挺好看的 带全套插件 自己耐心点配置一下插件 可以H5可以小程序 源码下载:https://download.csdn.net/download/m0_66047725/89394996 更多资源下载:关注我。

维度建模中的事实表设计原则

维度建模是一种数据仓库设计方法,其核心是围绕业务过程建立事实表和维度表。事实表主要存储与业务过程相关的度量数据,而维度表则描述这些度量数据的属性。 以下是设计事实表时需要遵循的几个重要原则,来源于《维度建模》那本书上&#xff0…

正解 x86 Linux 内存管理

1,机器解析的思路 发现网络上大量的教程,多是以讹传讹地讲解 Linux 内存管理; 都是在讲: 逻辑地址 -> 线性地址 -> 物理地址 这个转换关系是怎么发生的。 上面这个过程确实是程序运行时地址的翻译顺序; …

Java课程设计:基于Javaweb的校园订餐系统

文章目录 一、项目介绍二、项目技术栈三、核心代码四、项目展示五、源码获取 一、项目介绍 在当今互联网高速发展的时代,大学校园内的学生生活正在发生着翻天覆地的变化。其中,校园内的餐饮服务无疑是亟需改革和创新的领域之一。 传统的校园食堂模式,往往存在就餐高峰时段拥挤…

[Cloud Networking] SPDY 协议

文章目录 1. 背景2. SPDY 之前3. SPDY 项目目标4. SPDY 功能特点4.1 SPDY基本功能4.2 SPDY高级功能 1. 背景 TCP是通用的、可靠的传输协议,提供保证交付、重复抑制、按顺序交付、流量控制、拥塞避免和其他传输特性。 HTTP是提供基本请求/响应语义的应用层协议。 不…

ubuntu 22.04下载和安装

ubuntu镜像: https://www.releases.ubuntu.com/22.04/ 然后下载vmwareworkstation16 密钥 ZF3R0-FHED2-M80TY-8QYGC-NPKYF

fiddler打开后,requests无法使用

Fiddler实用小技巧 错误情况 打开fiddler后,requests无法请求 requests.exceptions.ProxyError: HTTPSConnectionPool(hosth5api.m.taobao.com, port443): 说明 其实这是一个很小的坑,确也是一个很常见的坑。 在打开fiddler后,根据fiddle…

Linux笔记--ubuntu文件目录+命令行介绍

文件目录 命令行介绍 当我们在ubuntu中命令行处理位置输入ls后会显示出其所有目录,那么处理这些命令的程序就是shell,它负责接收用户的输入,并根据输入找到其他程序并运行 命令行格式 linux的命令一般由三部分组成:command命令、…

Cheat Engine CE v7.5 安装教程(专注于游戏的修改器)

前言 Cheat Engine是一款专注于游戏的修改器。它可以用来扫描游戏中的内存,并允许修改它们。它还附带了调试器、反汇编器、汇编器、变速器、作弊器生成、Direct3D操作工具、系统检查工具等。 一、下载地址 下载链接:http://dygod/source 点击搜索&…

微信小程序毕业设计-实验室管理系统项目开发实战(附源码+论文)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…

为什么用SDE(随机微分方程)来描述扩散过程【论文精读】

为什么用SDE(随机微分方程)来描述扩散过程【论文精读】 B站视频:为什么用SDE(随机微分方程)来描述扩散过程 论文:Score-Based Generative Modeling through Stochastic Differential Equations 地址:https://doi.org/10.48550/arXiv.2011.13…

读AI新生:破解人机共存密码笔记02进化

1. 人工智能的标准模型 1.1. 机器优化人类提供的固定目标 1.1.1. 是一条死胡同 1.1.1.1. 当你走进死胡同时,你最好掉头返回,找出走错的地方 1.2. 问题不在于我们可能无法做好构建人工智能系统的工作&…