python 和 php 我都是使用过,这里不想做一个非常理性的分析,只是根据自己的经验谈一下感想。

在web开发方面,无疑 php 更甚一筹。

从某种角度来说,php 就是专门为 web 定制的语言。 他没有强制的变量类型,文件结构也很松散, 不需要再代码中手动导入各种类库,开发非常快速方便,稳定性也非常好。 python 则不然, 它需要手动定义很多参数, 大多数时候,需要一个类似 uwsgi 的 中间服务器 和 nginx,apache等更专业的web服务器通讯。虽然 uwsgi 也可以作为 web 服务器使用,却很少人这样使用。由于强制类型和严格的格式书写的关系,它在开发和维护的成本都比较高。

在开发模块和中间件以及开源软件上,python各甚一筹。

php 的劣势在于,它的各种模块不够丰富灵活,只能通过加载php扩展来实现,过于笨重;它的语言也不够严谨,不是一个开发基础模块很好的选择。 所以可以看到,市面上,许多基础的开源软件都是使用更为严谨的语言来开发的,如 python, java, node.js 等,这些开源软件有 sqlmap( python), elasticsearch( java ) 等。 python 有大量的各种模块可以使用,使得可以灵活的开发出各种软件。

在人工智能方面,python各甚一筹。

tensorflow 百分之40%的语言是用 python 完成,重要性可见一斑。

在兼容性方面,php更甚一筹。

php 无疑有更好的向后兼容性,即使现在最新版本已经达到 php7.2, 但是将php5 甚至 php4 的项目迁移到上面的时候,也不会出现非常大的不兼容。 完善的文档还会提示你,使用哪些函数更好,哪些函数以后会被弃用。 这无疑极大的减少了开发者的维护成本。

python 则不然,python2 和 3 在类库 上有极大的不同,python2的项目迁移到 python3上需要极大的成本。

结尾和关于写一个学习django源码系列的专题想法

django 是一个 python 的 web 框架。 对比 php 的 codeigniter 框架,可以发现。 同为MVC 模型,它的代码风格是不一样的,复杂度是更高的。 所以,作为一个学习的材料。我可以通过 django 更好的了解 python 中的一些设计思想。

django学习系列——python和php对比的更多相关文章

  1. Django学习系列之Form基础

     Django学习系列之Form基础 2015-05-15 07:14:57 标签:form django 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追 ...

  2. Django学习系列6:使用selenium测试用户交互

    学习系列5中的单元测试有报错信息,这儿来编写functional_tests.py文件,扩充其中的功能测试 # File: functional_test.py # Author: Rxf # Cre ...

  3. Django学习系列之Python+Xadmin

    项目树 引入xadmin pycharm在项目中创建存放xadmin的目录 右键项目名称-->pythonpackage-->输入名称:extra_app 拷贝xadmin代码到extra ...

  4. Python&Django学习系列之-激活管理界面

    1.创建你个人的项目与APP 2.填写你的数据库名称与数据库类型,这里使用内置的sqllite3 3.修改setting文件 a.将'django.contrib.admin'加入setting的IN ...

  5. Django学习系列12:把Python变量传入模板中渲染

    从视图的Python代码中把变量传入HTML模板. 模板中使用哪种句法引入Python对象,要使用的符号{{...}},它会以字符串的形式显示对象: <html> <head> ...

  6. Django学习系列5:为视图编写单元测试

    打开lists/tests.py编写 """向浏览器返回真正的HTML响应,添加一个新的测试方法""" from django.test i ...

  7. Django学习系列之request对象

    先来一个简单的实例 urls.py from django.conf.urls import url from django.contrib import admin from cmdb import ...

  8. Django学习系列之模板系统

    一.模板标签 if/else {%  if  %}标签检查一个变量的值是否为真或者等于另外一个值,如果为真,系统会执行{%  if  %}和{%  endif  %}之间的代码块,例如: {% if ...

  9. Django学习系列之模板

    什么是django模板 模板是一个文本,用于分离文档的表现形式和内容,模板定义了占位符以及各种用于规范文档该如何显示的各部分基本逻辑(模板标签) 模板通常用于产生HTML 如何使用模板 创建一个Tem ...

随机推荐

  1. JavaScript中全局变量和局部变量的不同

    今天看到大神写得一片文章,自己对全局变量和局部变量的理解还是不够深刻,因此写到这篇文章,做个总结. 大神代码截图+理解文字如下: 解析:上面代码中,变量i是var命令声明的,在全局范围内都有效,所以全 ...

  2. 通过P3P头实现跨域设置cookie

    PHP的setcookie函数可以设置域,但是只能在当前域内,如果出现多域可由如下办法处理:实现原理:www.b.com/set_cookie.php   在b域名下设置a域名的cookie < ...

  3. 论文选读一: Towards end-to-end reinforcement learning of dialogue agents for information access

    Towards end-to-end reinforcement learning of dialogue agents for information access KB-InfoBot 与知识库交 ...

  4. 简单测试 Kotlin native 性能

    准备 一直使用kotlin JVM平台开发服务器的应用,最近想试试看 Kotlin native的性能. 我使用的是 kotlin native 1.3.21,要使用他非常的简单,下载最新的 IDEA ...

  5. Java打包小结

    1eclipse打包:点击项目export,然后点击java->JAR file->next->选择目录->finish->报错也不管 2idea直接运行jar包就好了, ...

  6. JS数组映射保存数据-场景

    开发遇到,写个随笔,以防我的金鱼记忆 场景:一个页面从后台拿到20条数据,把他们展现在页面上,当点击某一个item时,需要展示这个item的详情,通常不会去把页面调走,就在本页面通过 display: ...

  7. 关于css3 渐变色

    渐变色在现在来说非常的常用:(注意渐变色只能给背景加 不能给边框加) 方法:-webkit-linear-gradient() 括号里面第一个值为渐变色的开始方向,第二个值为开始的颜色,中间用逗号隔开 ...

  8. oracle中的SQL优化

    一.SQL语言的使用1.IN 操作符    用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.    但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用 ...

  9. JS变量的提升详解

    此次说明的是var与function的变量提升 那么先看一段代码 <script type="text/javascript"> console.log(test); ...

  10. js截取固定长度字符串,多余字符显示...

    function cutstr(str, len) { var str_length = 0; var str_len = 0; str_cut = new String(); str_len = s ...