Django 是什么

子凡 2019-05-23 14:49:05
问答

Django是一个Python框架。开放源代码的Python Web应用框架,采用了MVT的软件设计模式,即模型Model,视图View和模板Template。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。

Django 是一个开放源代码的 Web 应用框架,由 Python 写成。采用了 MVT 的软件设计模式,即模型 Model,视图 View 和模板 Template。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于 2005 年 7 月在 BSD 许可证下发布。

Django

这套框架是以比利时的吉普赛爵士吉他手 Django Reinhardt 来命名的。

Django 的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django 注重组件的重用性和“可插拔性”,敏捷开发和 DRY 法则(Don't Repeat Yourself)。在 Django 中 Python 被普遍使用,甚至包括配置文件和数据模型。

Django 于 2008 年 6 月 17 日正式成立基金会。

Django 框架的核心包括:一个 面向对象 的映射器,用作数据模型(以 Python 类的形式定义)和关系型数据库间的介质;一个基于正则表达式的 URL 分发器;一个视图系统,用于处理请求;以及一个模板系统。

核心框架中还包括:

  • 一个轻量级的、独立的 Web 服务器,用于开发和测试。
  • 一个表单序列化及验证系统,用于 HTML 表单和适于数据库存储的数据之间的转换。
  • 一个缓存框架,并有几种缓存方式可供选择。
  • 中间件支持,允许对请求处理的各个阶段进行干涉。
  • 内置的分发系统允许应用程序中的组件采用预定义的信号进行相互间的通信。
  • 一个序列化系统,能够生成或读取采用 XML 或 JSON 表示的 Django 模型实例。
  • 一个用于扩展模板引擎的能力的系统。

Django 包含了很多应用在它的 contrib 包中,这些包括:

  • 一个可扩展的认证系统
  • 动态站点管理页面
  • 一组产生 RSS 和 Atom 的工具
  • 一个灵活的评论系统
  • 产生 Google 站点地图(Google Sitemaps)的工具
  • 防止跨站请求伪造(cross-site request forgery)的工具
  • 一套支持轻量级标记语言(Textile 和 Markdown)的模板库
  • 一套协助创建地理信息系统(GIS)的基础框架

Django 可以运行在启用了 mod_python 的 Apache 2 上,或是任何 WSGI 兼容的 Web 服务器。Django 也有启动 FastCGI 服务的能力,因此能够应用于任何支持 FastCGI 的机器上。

下列数据库引擎被 Django 官方支持:PostgreSQL、MySQL、SQLite、Oracle

Microsoft SQL Server 的适配器正在开发中,处于试验阶段。(注:SQL Server 的支持在 1.0 版本中已经被完全去除)

自 Django 1.0 起,已经可以利用 Jython 运行在任何 J2EE 服务器。除 CPython 外,Django 当前官方支持使用 Jython 2.7b2 运行,但不保证与 CPython 上的行为完全兼容,并应预期一些功能(如使用 Pillow 的部分)无法使用。

0个人收藏 收藏

相关推荐

  • Django

    Django,一个高级Python Web框架

    Django是一个由Python编写的开源Web框架,以其“不要重复自己”的设计哲学、强大的对象关系映射(ORM)、自动化管理界面、高效的安全措施和丰富的第三方库支持而闻名。它提供了一个全面的工具集,以支持快速开发高质量的Web应用,适合从小型项目到大型企业级应用。
  • 开源堡垒机 JumpServer

    JumpServer是什么

    JumpServer是一款开源的跳板机系统,它是一个安全的网络服务器,用于连接内部网络和互联网之间的安全通道。它可以用作安全的内部访问点,以及内部网络的安全桥梁,可以防止网络攻击者获得内部网络的控制权,可以让内部网络的用户访问互联网,而不用担心网络攻击。
  • JsRender

    JsRender是什么

    JsRender 是 jQuery 模板,专为高性能的纯字符串渲染而优化,无需 DOM 和其他 jQuery 依赖。允许定义一次样板结构并重复使用它来动态生成 HTML。
  • Pyston

    Pyston是什么

    Pyston几乎支持所有Python语义。另外还实现了许多用法,这些用法一般不认为是Python的特性,但一些常见的第三方库中会用到。如支持内置函数中所有的参数组合,或一些技巧性的用法,如修改sys.module来改变一条导入语句的结果。
  • Bitbucket

    Bitbucket是什么

    Bitbucket是Atlassian公司提供的一个基于web的版本库托管服务,支持Mercurial和Git版本控制系统。Bitbucket既提供免费帐号,也提供商业付费方案。免费帐号可使用的私有版本库不限数量,但最多可支持5名用户。
  • Jinja2

    Jinja2是什么

    Jinja2 是为 python 提供的一个功能齐全的模板引擎。Jinja2 提供了对 unicode 的全支持,以及一个可选集成的沙盒运行环境。它使用 BSD 协议。