Python的Web开发:为什么像Django这样的框架会很火
Posted Python程序员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python的Web开发:为什么像Django这样的框架会很火相关的知识,希望对你有一定的参考价值。
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。
Python在20世纪90年代初由Guido van Rossum创建,多年来Python越来越受欢迎。 在2016年,Python是Java,C和C ++之后第四最流行的语言。 Python是一种通用编程语言,它可以用于各种领域。 引用自Kenneth Love于Treehouse——
当我需要构建一个web应用程序,我会使用Python。 当我需要在我的系统上自动化一些小任务时,我会使用Python。 当我想找到一个图像中最常见的颜色,我会使用Python
Python是编写测试和监视脚本的常用选择。 Python也被用于游戏开发,并且它与其他语言集成的能力使它在这个过程中非常有价值。 它也被乔治·卢卡斯的工业光和魔术(负责原始的星球大战三部曲中的特殊效果)用于管理其复杂的生产过程,这是Python的声望。
与php不同,它不是为web而设计的,并且Python中没有集成核心Web功能。 因此,我们必须使用Web框架在Python中开发Web应用程序。自从Django这样的流行框架兴起, Web开发者已经开始使用这种框架。
最近,当谈到Web开发的时候会想到是什么使Python成为越来越多的开发人员的核心语言? 我们将尝试在这篇文章中找到这个问题的答案。
为什么使用Python?
Python初学者
Python流行的主要原因是代码的优雅 - 特别是简洁和可读性。 例如,让我们看看Python和Java如何在颠倒数字方面相互较量:
倒序排序数字的程序 java(左) python2.7.x(右)
Python提供了一个简短的学习曲线,使其成为初学者学习的理想选择。 除此之外,如果你的项目是基于Python的,并且新的开发人员不熟悉它,过渡起来更容易。
正如Quora联合创始人Adam D"Angelo在Quora开发中选择Python时说的——
到目前为止,我们对这一选择感到非常满意...所有在过去一直使用其他语言的早期员工都乐意转换到Python,尤其是那些做PHP的人。
事实上,webcomic xkcd做了一个卡通,说明在Python中完成事情是多么容易!
此外,Python很容易使用调试工具。 虽然有几个调试器和IDE工具,默认的是pdb,一个交互式调试工具,允许开发人员中途停止程序的执行并评估环境,以更好地了解运行时错误。
在远程server上的Python
Python中的包(或称为模块)的管理也很容易。 使用像pip或easy_install这样的软件包安装程序,可以用它来安装和删除软件包。
Python也很便携! 将开发环境转移到远程机器的方便性是值得称赞的。 您只需要导出这些软件包,并使用两个命令将它们安装在远程机器上的虚拟环境中。
Python是开发Web应用程序不错选择,其另一个原因是运行那些不嵌入到Web服务器的脚本的能力(与运行PHP脚本不同)。脚本作为单独的进程运行。
使用Python Web Framework的Web开发
Python的web功能并不构建到其核心功能中,因此,我们需要模块的帮助,以便在Python中实现Web开发。 如果你想开发非常基本的应用程序 - 例如一个页面,用于检查服务器是否正在运行 - 你可以使用cgi模块。
随着需求的增加,需要用到Python框架(如Django或Flask),以便能够开发复杂的基于Web的应用程序。
存在一个小瓶颈,就是多数这样的框架需要与像Apache一样的Web服务器联合作业。 与PHP相比,如果你是有生以来第一次想在远程Web服务器上轻松部署,这是有点困难的(虽然我们也满足了)。 然而,有投入就有回报。
Instagram,Reddit,Quora和Disqus等热门服务都是使用Python开发的。
Django - 最流行的Python Web Framework
自然会出现一个问题:为什么要使用Python进行Web开发? 我的答案是先不要认为它只是使用“Python”做web开发。 它的像Django和Flask这样的框架使得Python中的Web开发功能丰富而强大。 例如,以下是Django与任何其他Web框架相比的一些好处:
简单学习曲线。 就像Python一样,Django很容易学习。 你只需要在Django的网站上通过这个分步教程,这教程很好地解释了Django的基本功能。 而另一方面,学习Ruby on Rails可能需要更长的时间。
自动创建SQL表。 Django会为你自动创建你指定的结构。 (注:SQLAlchemy也是这样做的,如果你有兴趣,那么在Hacker News上有一个激烈的争论。)
生成表单。 在Django中创建一个Form类并将其链接到模型后,Django中的表单生成器负责渲染表单,数据验证和保存数据。
管理界面。 就像SQL表,一旦你决定了结构,Django创建一个管理界面,允许你管理数据库。 (这就像PhpMyAdmin内置到Django。)
Django Shell。 在Django项目的环境中的Python shell是Django shell提供的。 此功能在调试中非常有用,这在PHP中相对来说就很难了。
如果这些还不够,Python还有更前沿的发展。 Python中的两个令人兴奋的服务是Tornado(用于异步任务)和Celery(用于作业调度)。 如果他们满足你的需要,你可能想了解他们。
Django的web托管
有人开始使用Django的最大障碍是Web主机的可用性。 显然,由于PHP的普及,主机数量高,托管相对便宜(但不一定是物有所值,因为廉价托管通常是共享的)。 但是,有一些主机,如AWS和Heroku,允许您免费托管您的Django应用程序(在一定限制内)。对于实惠价位的共享主机,你可以得到一个像WebFaction的主机。
当今最流行的云托管服务(如AWS,Digital Ocean和Microsoft Azure)提供对服务器的root访问权限,这允许您手动设置环境。 Digital Ocean,事实上,已经提出了一键式Django部署。 Django托管可能不像PHP对手那么流行,但是有不同定价级别的稳妥选项可选。
最后的想法
这篇文章的目的不是告诉你Python可以解决每一个问题! 它是想强调Python的参数及其Web框架,这些使Web开发人员的生活更轻松。
你以前是否尝试过Python及其Web框架? 请在下面的评论告诉我们。
英文原文:https://www.sitepoint.com/python-on-the-web/
译者:zhaiworld
以上是关于Python的Web开发:为什么像Django这样的框架会很火的主要内容,如果未能解决你的问题,请参考以下文章