PHP 从语言层面上讲几乎是一无是处,具体实现的质量也乏善可陈,但它胜在最要命的部署上:没有任何其他语言有像 PHP 一样适合大规模部署的方式。基本上装好 Apache/mod_php 之后,PHP 应用的部署就简化为了复制文件。

即便是考虑到性能原因等采用 nginx/FastCGI 等替代方式,额外的工作也只是在于最初配置。一旦配置完成,之后的部署都是文件复制。服务器重启后通常会自动启动 apache/nginx,fastcgi manager 负责启动 php-cgi 进程等,而 PHP 应用基于文件的调用方式并不需要操心更多的维护。

这对于如 Dreamhost 之类的虚拟主机平台来说至关重要:他们通常要一台服务器处理成千上万的低流量用户,而且这些用户没有 root 权限去运行其他进程。PHP 脚本的生命周期很短,没有常驻进程,每次调用之后就被终止,对于应用作者的要求更低,不用太多的考虑资源管理问题。

这和 Python 之流的部署有天壤之别:大部分 Python 的网络应用如 Django, Tornado 等都需要单独的常驻进程(Apache/mod_python 似乎是个杯具,而且早就不再更新了)。这些进程需要额外的维护工作以管理其启动、停止,也需要额外的监控进程处理意外退出后的重启。这需要用户对系统有更深入的了解。常驻进程需要占用系统内存,通常不可能在一台服务器上运行成百上千个应用,对于 Dreamhost 这样的服务提供商来说不适合用来处理诸如 WordPress 博客之类的简单应用。

常驻进程也要求作者对系统资源的管理、垃圾回收机制等有更深入的了解以避免内存泄露、资源占用过度等问题。现在 Python 网络应用部署最简单的应该是 App Engine,采用了类似 PHP 的生命周期(请求处理 30 秒限制,超时被终止,无法运行常驻进程),极大简化了管理难度,但是国内无法访问…

所以从流行程度上讲,Python 不会超过 PHP,因为数量庞大的服务提供商无法用 Python 支撑现有的用户规模。但是这个流行程度对于创业公司、专业人士来说没有什么意义。很多核心的网络应用不适合用 PHP 的短暂请求处理机制实现(比如准实时 push 提醒、网页即时聊天等),而更加适合由常驻进程来处理。这些才是 Python,Ruby 等语言实现发挥其能量的地方。

Python 的强大之处在于语言的简洁与优雅,以及它强大的表达能力。Hacker 们愿意使用 Python 来作为他们表达思维的方式。

在 Web 开发上面,Python部署成问题,但是对于商业网站而言,自己处理一台 VPS 不成问题。而 Python的通用性,能保证完成各种非常规的应用。

简单地说,如果你只是需要 Web1.0 的内容展示网站,考虑php。而 Web2.0,可以考虑 Python,以及RoR。

来源:网络

python写web难受-pythonweb为什么不火-问答-阿里云开发者社区-阿里云相关推荐

  1. python写web难受-python写web

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 你难道想只凭 python 脚本,就做一个 web 应用出来? 还真别说,最近, ...

  2. python写web难受-(2017)你最不建议使用的Python Web框架?

    原标题:(2017)你最不建议使用的Python Web框架? 前言 这是一篇发在知乎专栏的文章,内容是之前我提的「(2017)你最不建议使用的Python Web框架?」下的回答.不过有些话没有说完 ...

  3. python web为什么不火-pythonweb为什么不火-问答-阿里云开发者社区-阿里云

    PHP 从语言层面上讲几乎是一无是处,具体实现的质量也乏善可陈,但它胜在最要命的部署上:没有任何其他语言有像 PHP 一样适合大规模部署的方式.基本上装好 Apache/mod_php 之后,PHP ...

  4. python写web难受-用Python编写web API的教程

    自从Roy Fielding博士在2000年他的博士论文中提出REST(Representational State Transfer)风格的软件架构模式后,REST就基本上迅速取代了复杂而笨重的SO ...

  5. python写web难受-用python写脚本此页面上造成web运行速度减慢

    TYPE="text/x-scriptlet" DATA="2.htm" HEIGHT="0" WIDTH="0"> ...

  6. python键盘怎么输入双引号_python中怎么输入引号 -问答-阿里云开发者社区-阿里云...

    Python中的引号可分为单引号.双引号和三引号. 在Python中我们都知道单引号和双引号都可以用来表示一个字符串,比如 str1 = 'python' str2 = "python&qu ...

  7. python合法标识符 40xl_Python基础测验(答案篇)-问答-阿里云开发者社区-阿里云

    一.填空题 Python使用符号 # 标示单行注释:以 缩进对齐 划分语句块. Python序列类型包括 字符串 . 列表 . 元组 三种: _字典_是Python中唯一的映射类型. Python序列 ...

  8. python列表做参数传值_python不定参数传值怎么做-问答-阿里云开发者社区-阿里云...

    使用arg_name定义的位置参数,表示任意多个位置参数:Python标准库中习惯使用args来命名不定长位置参数,当然我们可以自定义 这个名称:不定长位置参数的类型为元组: Python 允许在形参 ...

  9. 学python用哪个软件-学python要准备什么软件-问答-阿里云开发者社区-阿里云

    一.初识Python 第一次听到Python是在2016年大概暑假 时候(即将大三),因为对黑客技术的蜜汁热爱(虽然自己并不会),在玄魂大大的公众微信号中看到的Python黑客编程(加上个黑客就感觉好 ...

最新文章

  1. python 均值漂移
  2. 【Cocosd2d实例教程七】Cocos2d实现超炫的粒子效果!!
  3. 如何将本地代码使用Git上传至Github
  4. nodejs模块导入导出
  5. yelee主题中加入revolvermaps插件
  6. python如何关闭窗口仍能运行_Python在退出时关闭自己的CMD shell窗口
  7. 论文笔记 Aggregated Residual Transformations for Deep Neural Networks
  8. 结合Django+celery二次开发定时周期任务
  9. 服务器系统多用户怎么解决,服务器如何设置多用户登录
  10. 中考计算机表格操作题,中考信息技术Excel操作题.xls
  11. 240升水,运往干旱地区,最多携带60升,前进1公里耗1升,最多可赚多少钱
  12. 神州数码无线配置命令
  13. 《JAVA继承与多态》【Person、Student、Employee类】(注:此题在书上原题基础上有修改)设计一个名为Person的类和它的两个名为Student和Employee子类。
  14. MessageBox中涉及到的宏定义
  15. oa系统是什么,oa办公系统有哪些,域名邮箱如何开通注册?
  16. 基于webScoket的在线客服聊天
  17. kotlin的必修之路
  18. Map 和ConcurrentMap 线程不安全和线程安全证明
  19. JavaFX官方文档
  20. 鲍尔默:我当CEO时,微软对硬件研发投入真不够

热门文章

  1. cdn大全 jquery/jqueryUI/Dojo/MooTools/Prototype
  2. SQL常用字符串函数
  3. HTML字符实体(Character Entities),转义字符串(Escape Sequence)
  4. 为什么 Python 的 Range 要设计成左开右闭区间?
  5. PostgreSQL-8-数据合并
  6. 剪花布条(KMP入门)
  7. 【CodeVS1080】线段树练习
  8. 解决远程登录MYSQL数据库
  9. c# tcp备忘及networkstream.length此流不支持查找解决
  10. iOS7以下设备获取mac地址