Django 是使用 Python 语言开发的一款免费而且开源的 Web 应用框架。由于 Python 语言的跨平台性,所以 Django 同样支持 Windows、Linux 和 Mac 系统。

在 Python 语言炽手可热的当下,Django 也迅速的崛起,在 Web 开发领域占有一席之地。基于 Python 开发的框架除了 Django 外,还有可以实现快速建站 Flask 和支持高并发处理的 Tornado ,而 Django 是最有代表性的一位,它们三者是当前最流行的 Python Web 框架。

在学习 Django 之前,我们先来聊聊什么是框架,这要从 Django 的诞生说起。

1. Django的由来

Django 最初是被开发用来管理劳伦斯集团旗下一些以新闻内容为主的网站。2003 年,Lawerence Journal-World 报社的 Web 开发者艾德里安威利森开始用 Python 语言去开发应用。新闻界的快节奏使他们必须提高产品的开发速度,于是他们两个人想办法构建出了节省开发时间的框架,这个框架将能复用的组件或者模块放在一起,使开发者不必重复的工作,这是 Django 诞生的根本原因。

后来他们所在的开发小组决定将这个框架发布成一个开源软件。经过发展和时间的积累,Django 有了数以万计用户和贡献者,现在 Django 成为了 Web 开发者中最流行的框架。

总之,Python 的诞生是为了减少重复性工作,节省开发者时间,可以让开发者把有限的精力投入到关键的开发环节中。

下图是 Django 的标志。


图1:Django标志

通过上面的介绍,可以给出 Web 框架的概念:它是一套组件,提供通用的设计模式,能够最大程度地降低开发 Web 站点开发的难度,Django 的设计目标就是使复杂的工作变得简单。

2. Django的命名

Django 命名由来官方网站只给出了一句话:

To this day, he's considered one of the best guitarists of all time, Listen to his music. You'll like it.

Django 是以一个名叫 Django Reinhardt 吉他手的的名字来命名的。因为程序员的世界不能缺少音乐,开发者在他的音乐中得到灵感,为了感谢纪念这位吉他手,所以 Django 的名字也由此诞生!

Django 的发音也非常有趣,大写字母 D 不发音,正确的发音是“栈go”作为程序员不要读错哦。

3. Django的版本发布

Django 遵守 BSD(即伯克利软件发行)版权,初次发布于 2005 年 7 月,并于 2008 年 9 月发行第一正式版本 1.0。

从正式版 1.0 之后,Django 的版本发布过程如下:

1) 功能版

版本号定义为 A.B、A.B+1 等,大概每 8 个月发布一次,每个版本都有所改进。最新的 Django 版本是 Django 3.0 于 2020 年发布。

2) 补丁版

主要用来修复 bug 或者安全问题,版本号为 A.B.C 或者 A.B.C+1。

3) LTS 版本

LTS 也即长期支持版本,官方会长期提供支持和安全更新,时长至少三年,所以我们建议安装和使用 LTS 版本。

一些 Django 版本会被指定为 LTS,例如 1.11 LTS。值得大家注意的是,Django 最后一个支持 Python 2.7 的版本是 1.11 LTS,最新的 LTS 版本是 2.2 LTS。


图2:Django 版本发布

官方网站提供 Django 版本的下载,同时也提供了完善的在线文档,地址是 http://www.djangoproject.com。

4. Django框架的特点

相对于 Python 的其他 Web 框架,Django 的功能是最完整的,Django 定义了服务发布、路由映射、模板编程、数据处理的一整套功能。这也意味着 Django 模块之间紧密耦合。

Django 的主要特点如下:

  • 完善的文档:经过 10 余年的发展和完善,Django 官方提供了完善的在线文档,为开发者解决问题提供支持。
  • 集成 ORM 组件:Django 的 Model 层自带数据库 ORM 组件,为操作不同类型的数据库提供了统一的方式。
  • URL 映射技术:Django 使用正则表达式管理URL映射,因此给开发者带来了极高的灵活性。
  • 后台管理系统:开发者只需通过简单的几行配置和代码就可以实现完整的后台数据管理Web控制台。
  • 错误信息提示:在开发调试过程中如果出现运行异常,Django 可以提供非常完整的错误信息帮助开发者定位问题。

Django是什么?相关推荐

  1. Django学习之路(一)--初识django

    1.先创建虚拟环境 为什么要创建虚拟环境呢? 你有两个项目同时进行,一个需要pytnon3.9和Django3.x版本的,一个需要python3.7和Django2.x版本的,不进行环境隔离的话,运行 ...

  2. django自带的分页功能

    django自带的分页功能 django中自带的分页功能有缺陷,但是也是一种思路,所以在下做一个整理,方便以后使用,还有服务各位小伙伴. django视图部分的代码.(注释才是重点) from dja ...

  3. django正反向查询

    django正反向查询 当我们的表存在外键想要从一找多的时候该怎么查找,当我们从多找一的时候又应该怎么查找. 一找多 首先我们要创建一个项目,在项目的model.py中创建两个模型. from dja ...

  4. Django 布署6.5

    布署 从uwsgi.nginx.静态文件三个方面处理 服务器介绍 服务器:私有服务器.公有服务器 私有服务器:公司自己购买.自己维护,只布署自己的应用,可供公司内部或外网访问 公有服务器:集成好运营环 ...

  5. Django 全文检索6.3

    全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理 haystack:django的一个包,可以方便地对model里面的内容进行索引.搜索,设计为支持wh ...

  6. Django 缓存6.2

    缓存 对于中等流量的网站来说,尽可能地减少开销是必要的.缓存数据就是为了保存那些需要很多计算资源的结果,这样的话就不必在下次重复消耗计算资源 Django自带了一个健壮的缓存系统来保存动态页面,避免对 ...

  7. Django 第三方引用富文本编辑器6.1

    借助富文本编辑器,管理员能够编辑出来一个包含html的页面,从而页面的显示效果,可以由管理员定义,而不用完全依赖于前期开发人员 此处以tinymce为例,其它富文本编辑器的使用可以自行学习 使用编辑器 ...

  8. Django 分页和使用Ajax5.3

    分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据, ...

  9. Django 上传图片和Admin站点5.2

    上传图片 当Django在处理文件上传的时候,文件数据被保存在request.FILES FILES中的每个键为<input type="file" name="& ...

  10. Django高级管理静态文件和中间件5.1

    管理静态文件 项目中的CSS.图片.js都是静态文件 配置静态文件 在settings 文件中定义静态内容 STATIC_URL = '/static/' STATICFILES_DIRS = [os ...

最新文章

  1. 学习笔记整理之对象的转型
  2. mysql讀取sql_SQL 2008连接读取mysql数据的方法
  3. 【直播课】6小时教你掌握MMdetection工程落地实践
  4. ZooKeeper available but no active master location found
  5. Java代码中方法的特殊修饰符/修饰词/关键字
  6. CentOS 安装 php
  7. php页面文件后缀名,PHP中获取文件扩展名的N种方法
  8. 用ffmpeg快速剪切和合并视频
  9. Eclipse中使用google代码风格
  10. python爬取网站所有资源
  11. 职工考勤管理信息系统数据库课设_职工考勤管理系统数据库设计
  12. 正交表测试与混合正交表工具
  13. JAVA —— ArrayList集合习题(共四题)
  14. 树莓派 树莓派 编c++_如何建立一个树莓派冰箱的冷冻监视器
  15. 物联网系列②——使用ESP8266与STM32进行物联网开发板设计
  16. Sublime安装中文插件
  17. 【Python数据可视化(五)】创建3D可视化图表
  18. 端口扫描神器 - Nmap的基本使用
  19. VB利用多张PNG图片制作动画
  20. ping——判断两个设备是否在同一个局域网下

热门文章

  1. Mac 安装 homebrew 详细教程
  2. 关系的完整性-参照完整性
  3. 傅立叶变换中的吉布斯(Gibbs)现象
  4. 一文了解 Zebec Labs 投资的 Coral Finance,空投计划或在不久推出
  5. 微信小程序引入promise报错
  6. DOS命令大全:Findstr命令详解
  7. 典型的交响乐乐队包括哪些乐器
  8. 数据库连接:操作数据增删改查
  9. Mac OS X 10.8.2终端切换root用户
  10. jquery 循环html标签,jQuery – 通过具有特定属性的元素循环