Django初学者指南

文章目录

  • 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.mzph.cn/diannao/28175.shtml

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

相关文章

数据结构02 队列及其应用【C++实现】

目录 队列及其特点 利用数组模拟队列的基本操作 创建队列 空队条件 元素入队 元素出队 模拟超市收银问题 队列操作 初始化 入队操作 出队操作 取出队首元素 STL模板中队列的基本使用 训练:约瑟夫问题 参考程序 队列及其特点 队列是一种特殊的线性表&am…

求导,积分

求导公式: 复合函数求导法则:两个函数导函数的乘积. 例如:f(x)2x1,f(x)2,g(x)x^24x4,g(x)2x4 那么复合函数: g(f(x))(2x1)^24(2x1)4 把(2x1)看做整体,则g2(2x1)4 然后再求(2x1)的导函…

Stable Diffusion vs DALL·E3

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提…

基于System-Verilog的流水灯设计与仿真

文章目录 一、system Verilog1.语言基本介绍2.过程赋值和连续赋值 二、编写testbench仿真1.流水灯testbench2.2位全加器3.实验结果 一、system Verilog 1.语言基本介绍 像 Verilog 和 VHDL 之类的硬件描述语言 (HDL) 主要用于描述硬件行为,以便将其转换为由组合门…

海底管缆先敷后埋与边敷边埋有什么区别?

海缆铺设有两种方式:“边敷边埋”和“先敷后埋”。 “边敷边埋”冲埋式埋设犁施工法———通过埋设犁(水力开沟机)泵送高压水,在海底冲出一条沟槽的同时,将海缆平铺下去,然后利用在潮汐作用下海床面自行回填(必要时采取压盖保护施工)。主要施…

[linux]如何跟踪linux 内核运行的流程呢

前面已经可以把内核编译出来,但是作为技术狗想看到内核是怎么运行的怎么办? 内核很多代码都是C语言写的,那简单,添加2行代码: include/linux/printk.h 529和530原来的: #define pr_info(fmt, ...) \ …

vue input 限制输入,小数点后保留两位 以及 图片垂直居中显示 和 分享 git 小技巧

&#xff08;1&#xff09;input 限制输入&#xff0c;小数点后保留两位 <template><div><el-input v-model"number" input"checkNumber" blur"completeNumber" placeholder"请输入"></el-input></div>…

文章解读与仿真程序复现思路——电工技术学报EI\CSCD\北大核心《计及台风时空特性和灵活性资源协同优化的配电网弹性提升策略》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

鸿蒙轻内核M核源码分析系列二一 03 文件系统LittleFS

2.2 文件信息数组操作 函数LfsAllocFd()设置文件信息数组元素信息。参数fileName为文件路径信息&#xff0c;传出参数fd为文件描述符即数组索引。遍历文件信息数组&#xff0c;遍历到第一个未使用的元素标记其为已使用状态&#xff0c;设置文件路径信息&#xff0c;把数组索引…

gbase8s数据库阻塞检查点和非阻塞检查点的执行机制

1. 检查点的描述 为了便于数据库系统的复原和逻辑恢复&#xff0c;数据库服务器生成的一致性标志点&#xff0c;称为检查点&#xff0c;其是建立在数据库系统的已知和一致状态时日志中的某个时间点检查点的目的在于定期将逻辑日志中的重新启动点向前移动 如果存在检查点&#…

Windows 服务器Nginx 下载、部署、配置流程(图文教程)

不定期更新 目录 一、下载Nginx安装包 二、上传安装包 三、启动Nginx 四、Nginx常用命令 五、Nginx&#xff08;最小&#xff09;配置详解 六、Nginx&#xff08;基础&#xff09;配置详解 七、反向代理 八、负载均衡 九、动静分离 十、报错 一、下载Nginx安装包 四…

【源码】综合股票币币合约交易所源码/etf交易所源码/美股港股台股交易所源码

支持多国语言 全开源可二开的一个版本&#xff01;支持虚拟货币 ETF 外汇 美股 A股 港股 台股。 前端是VUE开发&#xff08;带vue工程源码&#xff09;后端JAVA开发&#xff01;搭建也相对简单。 总的来说功能非常强大&#xff0c;适合线上运营的一个版本&#xff0c;有兴趣的可…

【因果推断python】38_预测模型1

目录 工业界中的机器学习 之前的部分涵盖了因果推理的核心。那里的技术是众所周知和成熟的。他们经受住了时间的考验。第一部分建立了我们可以依赖的坚实基础。用更专业的术语来说&#xff0c;第一部分侧重于定义什么是因果推理&#xff0c;哪些偏差会阻止相关性成为因果关系&…

Techo TVP技术 沙龙

Techo TVP技术 沙龙 今天参加了 在上海 徐汇 腾讯云大厦 举办的 Techo TVP 技术沙龙&#xff08;主要介绍 AI agent 让我感受很深&#xff09; &#xff0c;那什么是 AI Agent呢&#xff1f; 是一个智能体&#xff0c;由大语言模型驱动&#xff0c;具有自主理解、感知、规划、…

MISSING COURSE-shell

shell 01 what is the shell q: linux如何操作计算机硬件cpu 内存 磁盘 显示器等 a:使用linux的内核操作 1.shell -is命令 shell通过编写shell命令 发送给linux内核 去执行 操作就是计算机硬件 so shell 是用户操作计算机 类似于windows里的dos命令 shell是一门程序设计语言…

《分析模式》漫谈03- Unified Method并不是RUP

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 在《分析模式》第2章 &#xff0c;Fowler提到了“Rational Softwares Unified Method”&#xff0c; 而且给出了引用的参考文献&#xff0c;是Rational公司的一份文档&#xff1a; 200…

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

文章目录 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…

Git冲突解决指南:如何优雅地解决代码合并冲突

在团队协作开发中&#xff0c;使用版本控制系统Git是非常常见的。然而&#xff0c;在多人同时对同一文件进行修改时&#xff0c;就可能出现代码合并冲突。这时就需要我们学会如何优雅地解决这些冲突&#xff0c;保证代码的完整性和质量。本文将为您介绍Git冲突解决的基本原则和…

string类的使用手册

1.构造函数 补充&#xff1a;npos&#xff1a;size_t类型数据的最大值 default (1) string(); 构造空的string类对象 copy (2) string (const string& str); 拷贝构造函数&#xff08;深拷贝&#xff09; substring (3) string (const string& str, size_t pos, size_…

自动化测试火狐下载文件

本篇文章介绍selenium中火狐浏览器如何下载文件。比如我想把这个MP4的视频文件下载下来。 点击之后查看下载的类型是video/mp4 指定使用火狐浏览器 profile webdriver.FirefoxOptions() # 设置firefox默认的下载路径&#xff0c;0表示桌面&#xff0c;1表示我的下载&#xf…