Python web框架——Django

简介

django是一个免费的开源的python web框架。
它遵循了model-view-template(MVT)的架构模式。
由 Django Software Foundation 维护,一个以501©(3)非营利组织形式成立的独立组织。

django的主要目标是简单的去开发一个复杂的数据库驱动的网站。该框架强调组件的可重用性和“可插拔性”、代码更少、低耦合、快速开发以及“不要重复自己”的原则。Python贯穿始终,甚至是设置文件和数据模型。Django也提供了一个可选的管理的 create, read, update 和delete接口 它通过自省动态生成,并通过管理模型配置。

一些著名的网站使用了Django,包括公共广播服务,[9]Instagram,[10] Mozilla,[11] the Washington Times,[12] Disqus,[13] Bitbucket,[14]和Nextdoor。它曾在Pinterest和[16]上使用,但后来该网站移到了Flask之上的一个框架上。

特性

组件

尽管有自己的术语,例如为生成HTTP响应的可调用对象命名“视图”,核心的Django框架可以看成是一个MVC架构。
它包含了一个ORM(object-relational mapper)调和了不同的数据模型(定义在python类中)和一个关系数据库(模型),一个系统处理HTTP请求使用一个web模板系统(View),和一个基于正则表达式的URL分配器(Controllor)

核心框架还包含了:

  • 一个轻量级的单独的web 服务器用于开发和测试
  • 一个表格串行化和验证系统能够翻译HTML形式和值适合于数据库存储
  • 一个模块系统使用了从面向对象编程中提取的特性的概念。
  • 一个caching框架可以使用任何的cache方法。
  • 支持中间件类,可以在请求处理的不同阶段进行干预并执行定制功能
  • 内部调度程序系统,允许应用程序的组件通过预定义的信号彼此通信事件
  • 国际化系统,包括将Django自己的组件翻译成各种语言
  • 一个序列化系统,可以生成和读取Django模型实例的XML和/或JSON表示
  • 扩展模板引擎功能的系统
  • Python内置单元测试框架的接口

绑定的应用

Django主发行版还在它的“contrib”包中捆绑了一些应用程序,包括:

  • 一个可扩展的身份验证系统
  • 动态管理接口
  • 用于生成RSS和Atom联合提要的工具
  • 一个“站点”框架,允许一个Django安装运行多个站点,每个站点都有自己的内容和应用程序
  • 用于生成谷歌站点地图的工具
  • 内置缓解跨站点请求伪造、跨站点脚本编写、SQL注入、密码破解和其他典型web攻击的功能,其中大多数在默认情况下启用了。
  • 用于创建GIS应用程序的框架

可扩展性

Django的配置系统允许第三方带入植入到普通项目,只要它遵循可重用的应用程序约定…有超过2500个包…

安排服务器

Django可以与Apache、使用WSGI的Nginx、Gunicorn或使用flup (Python模块)的切诺基一起运行。Django还包括启动FastCGI服务器的能力,支持任何支持FastCGI的web服务器,比如Lighttpd或Hiawatha。还可以使用其他符合wsi的web服务器。[27] Django正式支持四个数据库后端:PostgreSQL、MySQL、SQLite和Oracle。Microsoft SQL Server可以与Microsoft操作系统上的django-mssql、[28]一起使用,而IBM Db2、[29]SQL Anywhere[30]和Firebird也有类似的外部后端。有一个名为django-nonrel的分支,它支持NoSQL数据库,如MongoDB和谷歌App Engine的数据存储

猜你喜欢

转载自blog.csdn.net/xiabenshu/article/details/88954501