Django 是以 Python 编写的高级,MVC 风格的开源库。 Django 也被称为“完美主义者的最后框架”,它最初是为新闻网站设计的,并且允许开发人员编写数据库驱动Web应用程序,因此无需从头开始编码。
一、为什么Django框架统治着Python开发
为什么 Django 是 Python 开发者的优异 Web 框架
Django 是以 Python 编写的高级,MVC 风格的开源库。 Django 也被称为“完美主义者的最后框架”,它最初是为新闻网站设计的,并且允许开发人员编写数据库驱动Web应用程序,因此无需从头开始编码。
除了更快完成常见的 Web 开发任务,Django 还能使设计过程干净务实。 Django 是新的 Python Web 开发人员的优异选择,其官方文档和教程是软件开发中较好的。
在技术市场充斥着一系列网络框架,但 Django 一直是较受欢迎的服务器端 Web 框架。设计 Django 最初的原因是:不要重复造轮子。 Django 是用 Python 编写的,通过最小化编写代码来提高效率,再加上云平台的支持,使Django 成为 Web 开发者较受欢迎的选择。
Django的主要特点
1、Django配有“Batteries-Included”
Django 基于 “Batteries-Included” 的理念,可不必使用单独的库来实现常见功能,例如身份验证,URL 路由,模板系统,对象关系映射器(ORM)和数据库模式迁移。如果您正在使用或使用 Flask,您必须注意到它要求一个单独的库,如用 Flask-Login 来执行用户身份验证,而 Django 不必这样做。
2、免费 API
使用 Django,可以根据您的模型生成 Python API,不需要额外的编码就能够生成 API 了。
3、独特的管理界面
即使在网站完全构建之前,您也可以从外部贡献者的网站上获取有关信息,这就是 Django 的优点。该框架使您能够快速轻松地从应用程序的模型中创建一个管理站点。
4、代码布局
与大多数 Web 框架相反,Django 通过使用称为 application 的东西,更容易地将新功能插入到产品中。因此,开发人员一直被鼓励编写自包含的代码。
5、Django 的 ORM 专注于数据库
Django 的对象关系映射器(ORM)负责处理数据库,所以没有处理结构化查询语言(SQL)那样的麻烦,它主要用于查询数据库所需的数据。与许多通过SQL 直接在数据库上工作的 Python 框架不同,Django 开发人员有一个独特的工具来操纵相应的 Python 模型对象。 Django 通过使用 PostgreSQL,MySQL,SQLite 和 Oracle 等关系数据库管理系统来实现开箱即用的功能。
6、强大的内置模板系统
基于继承系统,Django 的模板允许开发人员从非常少量的前端代码构建整个动态网站,通过使用上下文特定元素来替换模板的某些元素选项。想象一下,你知道你网站的每个页面都会有一个页眉和一个页脚。现在,您首先需要在网站的基本模板中编写代码。然后,您可以从应用程序的其他部分动态地更改这两个内容之间的组件。
7、简单可读的 URL
一般来说,很难正确阅读在 PHP os ASP 中开发的 URL。使用 Django,您可以创建简单易读的 URL,这对人和搜索引擎都有好处。您也可以使用其他框架创建可读 URL,但没有一个与 Django 一样容易进行 URL 构造。
8、快速启动,轻松创建 RSS 和 Atom 订阅源
使用 Django,您可以通过创建一个简单的 Python 类来快速,轻松地创建 RSS和 Atom 订阅源。
9、自动创建数据库中的表
如果数据库中缺少表,可以通过在 Django 中执行 migrate 命令来自动创建表
10、轻松的数据库迁移
Django 最有用的功能之一就是数据库迁移。使用 Django 的迁移,您可以快速更改数据库模式,跟踪您的数据库模式以及进行相关更改。迁移名称有助于管理版本控制,并且可以使用多种选项来合并版本并进行修改。
11、安全
Django 是高度安全的。该框架具有针对 XSS 攻击,CSRF 攻击,SQL 注入,点击劫持,用户管理,Cookie,电子邮件标题注入,加密,目录遍历等的默认保护。
Django 有一个非常活跃的社区,有 80,000 个 StackOverflow 问题和来自开发人员和高级用户的许多博客。一些流行的使用 Django 的网站是 Bitbucket,Pinterest,Instagram 和 Theionion。 Django 将会成为 Python 开发人员较受欢迎的选择
延伸阅读:
二、什么是Python
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。