为什么 Django 能持续统治 Python 开发世界

2017 年 7 月 19 日 Python开发者

(点击上方蓝字,快速关注我们)


编译:开源中国 

oschina.net/translate/why-django-is-the-best-framework-for-python-developers

如有好文章投稿,请点击 → 这里了解详情


对于 Python 开发者来说,web 开发框架真可谓玲琅满目。然而 Django , 毋庸置疑的成为最受青睐的 web 框架。通过本篇博客,我来为大家讲解下为什么相比 Flask、Pyramid、Tornado、Bottle、Diesel、Pecan、Falcon 这些流行的 Python web 框架,Python 开发者更倾向于选择 Django。


再大肆宣扬Django之前,让我们简单了解一下web框架


Web框架是一个代码库,使开发人员更容易构建动态网站、Web应用程序和Web服务。 众所周知的是,每个网站都有一些通用的功能(如处理会话,数据验证等等),一些您每次创建网站时都需要编写的功能。 这使开发任务平淡乏味。 然而,使用Web框架可以让您每次创建网站都需要重新编写通用功能代码的困境结束,从而实现更快的开发。 简而言之,Web框架可以简化Web开发。


如果您想深入了解Web框架及其优点,请点击此处(https://www.wired.com/2010/02/get_started_with_web_frameworks/)。


为什么Django是Python开发者的最佳选择



Django是一个Python编写的,高级的,MVC风格的开源库。 Django也被称为“完美主义者的最终框架”,它最初是为新闻网站设计的,因为它允许开发人员编写数据库驱动的Web应用程序,而无需从头开始编码。


除了更快完成常见的Web开发任务,Django还可以保持设计干净且实用。 Django是Python Web开发新人的最佳选择,因为官方文档和教程是几个(同类)软件开发框架中最好的。


技术市场充斥着一系列网络框架,但Django在最受欢迎的服务器端Web框架里处于顶峰位置。设计Django背后的座右铭很简单:避免重复。 Django是用Python编写的,因此其减少了太多中间层代码并突出提高了效率。Django可以支持云平台,使其成为Web开发中更受欢迎的选择。


Django主要特点


  • Django“自备军需”(Batteries-Included)



Django基于“自备军需”的理念,您不必使用单独的库来实现常见功能,例如身份验证,URL路由,模板系统,对象关系映射器(ORM)和数据库模型迁移。 如果您正在使用或曾经用过Flask,您一定注意到了它需要调用其他库,如Flask-Login来执行用户身份验证。 Django不是这样。


  • 自由的API


使用Django,很容易根据您的模型生成Python API。 只需一个简单的命令,不需要额外的编码就足以开始生成API了。


  • 独特的管理页面



即使在网站完全构建之前,您也可以从外部贡献者处获取有关信息。 这就是Django的力量。 该框架使您能够快速轻松地从应用模型生成管理站点。


  • 代码设计


与大多数 Web 框架相反,Django 通过使用称为 app 的东西,更容易地将新功能添加到产品中。 因此,开发者可以感受到 Django 鼓励大家编写模块化的代码。


  • Django对ORM的完善支持



Django的对象关系映射 (ORM) 对数据库进行了完善的支持。所以,它用于查询数据库所需的数据时,没有处理结构化查询语言(SQL)的麻烦。 与许多通过SQL直接在数据库上工作的Python框架不同,Django开发人员有一个独特的选择来操纵相应的Python的Model对象。 Django对于PostgreSQL,MySQL,SQLite和Oracle等数据库都能做到开箱即用。


点击此处了解使用 Django 及其 ORM 进行数据处理的基础知识。(https://github.com/leifos/tango_with_django_19/blob/master/manuscript/chapter5-database-setup.md)


  • 强大的内置模板系统 


基于继承系统,Django 的模板允许开发人员通过非常少量的前端代码构建整个动态网站。这得益于使用其他上下文特定元素替换模板的某些元素的选项。 想象一下,你知道你网站的每个页面都会有一个页眉和一个页脚。 现在,您首先需要在网站的基本模板中编写代码。 然后,您可以从应用程序的其他部分动态地更改这两个内容之间的组件。


  • 简单可读的网址


很难正确阅读在PHP os ASP中开发的URL? 使用 Django,您可以创建简单易读的 URL,这对人和搜索引擎都有好处。 您也可以使用其他框架创建可读 URL,但没有一个与 Django 一样容易进行 URL 构造。


  • 快速容易的创建RSS和ATOM feeds


使用 Django,你可以通过创建一个简单的Python类来快速创建 RSS 和 ATOM feeds。


  • 在数据库中自动创建表


如果你的数据库中缺失了某一个表,你可以通过执行 Django 的迁移命令来自动创建它。


  • 容易的数据迁移


数据迁移是 Django 中最有用的功能之一。通过使用 Django 的迁移方法,你可以在短时间内改变一个数据库模式。同样也容易就能跟踪你的数据库模式和相关的改变。为数据迁移所做的命名能够帮助你进行版本控制,还有很多选项可以用来合并版本和进行修改。


  • 安全性


Django非常安全,该框架默认情况下可以防止 XSS 攻击、CSRF 攻击,SQL 语句注入、点击劫持、用户管理、cookies、邮件标头注入、密码攻击、目录遍历攻击等等。


Django有一个非常活跃的社区,有80,000个StackOverflow问题和数不清的博客来自开发人员和高级用户。 有一些流行网站使用Django,包括 Bitbucket, Pinterest, Instagram, 以及 The Onion。 Django的人气不断飙升,可能仍然是Python开发人员最受欢迎的选择。


您之前的项目是否用过Django? 你真的认为Django是Python开发人员最好的框架吗? 一如既往,您的意见对于所有读者都至关重要,请在下面的评论栏中分享您的看法。


看完本文有收获?请转发分享给更多人

关注「Python开发者」,提升Python技能

登录查看更多
0

相关内容

Django 是用 Python 语言写的开源 Web 开发框架,它鼓励快速开发,并遵循 MVC 设计和 BSD 版权。Django 根据比利时的爵士音乐家 Django Reinhardt 命名。
FPGA加速系统开发工具设计:综述与实践
专知会员服务
66+阅读 · 2020年6月24日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
237+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
262+阅读 · 2020年5月17日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
182+阅读 · 2020年1月1日
爆红GitHub!有人打算用这个项目100天拿下Python
程序猿
16+阅读 · 2019年5月15日
刚开始学编程?这几款小工具能让你事半功倍
干货 | Python 爬虫的工具列表大全
机器学习算法与Python学习
10+阅读 · 2018年4月13日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
Python 如何快速入门?
全球人工智能
6+阅读 · 2018年3月15日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Python NLP 入门教程
开源中国
14+阅读 · 2017年10月1日
Arxiv
5+阅读 · 2019年10月11日
Next Item Recommendation with Self-Attention
Arxiv
5+阅读 · 2018年8月25日
VIP会员
相关VIP内容
FPGA加速系统开发工具设计:综述与实践
专知会员服务
66+阅读 · 2020年6月24日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
237+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
262+阅读 · 2020年5月17日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
182+阅读 · 2020年1月1日
相关资讯
爆红GitHub!有人打算用这个项目100天拿下Python
程序猿
16+阅读 · 2019年5月15日
刚开始学编程?这几款小工具能让你事半功倍
干货 | Python 爬虫的工具列表大全
机器学习算法与Python学习
10+阅读 · 2018年4月13日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
Python 如何快速入门?
全球人工智能
6+阅读 · 2018年3月15日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Python NLP 入门教程
开源中国
14+阅读 · 2017年10月1日
Top
微信扫码咨询专知VIP会员