API 接口开发 Python 和 PHP 哪个更合适? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
baiman521
V2EX    Python

API 接口开发 Python 和 PHP 哪个更合适?

  •  2
     
  •   baiman521 2018-08-27 10:16:36 +08:00 14055 次点击
    这是一个创建于 2615 天前的主题,其中的信息可能已经有所发展或是发生改变。

    web,微信小程序等等一些后台的 api 接口开发的话 python 的 django,flask 和 php 的 thinkphp,laravel 哪个更好用呢.

    79 条回复    2018-08-28 16:34:02 +08:00
    tanglangshan
        1
    tanglangshan  
       2018-08-27 10:41:45 +08:00   1
    python 吧,如果不跟 html 混写,纯粹写后端,php 优势就不大了
    dzybiu
        2
    dzybiu  
       2018-08-27 11:07:25 +08:00
    看你更偏向哪个技术栈,仅仅是要提供接口使用 python 吧,如果后期还要加后台管理啥的,还是选 php 比较合适点,个人观点,可以参考下
    baiman521
        3
    baiman521  
    OP
       2018-08-27 11:16:49 +08:00
    @tanglangshan 如果偏全栈开发的话 python 跟 php 比的话是不是没有啥可比性 首选 php
    feiffy
        4
    feiffy  
       2018-08-27 11:19:42 +08:00
    熟悉哪个用哪个
    mumbler
        5
    mumbler  
       2018-08-27 11:20:24 +08:00
    php 鲁棒性更强一点
    huangzhe8263
        6
    huangzhe8263  
       2018-08-27 11:25:31 +08:00
    会拿个用拿个
    是我肯定 py 啦

    API 不需要前端界面, py 语法优势大
    LokiSharp
        7
    LokiSharp  
       2018-08-27 11:26:58 +08:00
    写 API 的话 Flask 很爽
    loginv2
        8
    loginv2  
       2018-08-27 11:34:30 +08:00
    php swoole easyswoole
    v2chou
        9
    v2chou  
       2018-08-27 11:36:28 +08:00
    会拿个用拿个
    Klingon
        10
    Klingon  
       2018-08-27 11:37:22 +08:00
    帖子都已发到了 python 板块,那就选 Python 吧
    KgM4gLtF0shViDH3
        11
    KgM4gLtF0shViDH3  
       2018-08-27 11:44:34 +08:00
    日经问题
    xiaoqi
        12
    xiaoqi  
       2018-08-27 11:47:31 +08:00
    还是用 go 吧
    tanglangshan
        13
    tanglangshan  
       2018-08-27 11:50:31 +08:00
    @baiman521 python 语法不适合嵌入 html 模板,没有 end,if、for 之类的语句没法写在一行,还没有 3 目运算符,这些特性很不适合跟 html 混写,php 天生就是跟 html 打交道的
    chineselittleboy
        14
    chineselittleboy  
       2018-08-27 11:57:15 +08:00   1
    微信小程序我会选 PHP(laravel/lumen+EasyWeChat)
    dilu
        15
    dilu  
       2018-08-27 11:58:08 +08:00
    第一 会哪个用哪个
    第二 当地市场哪个好招人还便宜用哪个
    不要在意什么性能、优雅、语法等问题,都是脚本语言谁也不比谁好到哪去
    zzf2017
        16
    zzf2017  
       2018-08-27 12:02:27 +08:00
    没人用 java 的吗?我感觉也还行啊,轮子众多啊
    liuxu
        17
    liuxu  
       2018-08-27 12:08:31 +08:00
    两个脚本语言有啥谁好谁坏,你拿 C 比较,说 C 代码量大还有的比,他们俩有啥可比性
    TommyLemon
        18
    TommyLemon  
       2018-08-27 12:19:06 +08:00
    @zzf2017
    Python 的开发效率真的比 Java 高吗?
    https://www.zhihu.com/question/23496666/answer/472959182
    tanglangshan
        19
    tanglangshan  
       2018-08-27 12:24:09 +08:00
    php 还有个优点,修改代码以后不需要重启 server,瞬间即可看到效果
    blodside
        20
    blodside  
       2018-08-27 12:28:51 +08:00
    allinoneok
        21
    allinoneok  
       2018-08-27 12:42:02 +08:00 via Android
    php7 快
    huangzhe8263
        22
    huangzhe8263  
       2018-08-27 12:45:25 +08:00
    @tanglangshan #13

    python 没有三目?
    a = 1 if b > 1 else 0
    了解一下

    另外 django 写的话肯定是用模板的, 一般都是在 py 层面解决了大部分操作再下推到 html 吧.

    赋值循环语句也可以用生成式解决
    huangzhe8263
        23
    huangzhe8263  
       2018-08-27 12:48:10 +08:00
    关于重启的, py 无论是 django 还是 flask 都提供了类似的效果
    to2false
        24
    to2false  
       2018-08-27 12:51:09 +08:00   1
    单写 API,墙裂推荐 go
    Cbdy
        25
    Cbdy  
       2018-08-27 12:57:34 +08:00
    Node.js 还用选?
    BjQR4kYSAe4Eo7vl
        26
    BjQR4kYSAe4Eo7vl  
       2018-08-27 12:59:22 +08:00
    python 和 go 都会一点. 同样的接口,我用 python 比 go 快很多. 大概 go 两天做完的工作,我用 python 只需要一天不到.

    单单写 API,python 更舒服.
    endlessing
        27
    endlessing  
       2018-08-27 13:06:39 +08:00
    推荐 PHP
    PulpFunction
        28
    PulpFunction  
       2018-08-27 13:38:24 +08:00
    flask 一键安装
    就是一个接口
    轮子也多
    Jamy
        29
    Jamy  
       2018-08-27 13:43:40 +08:00
    @mumbler 鲁棒性,第一次在书上看到的时候一头雾水.没想到现在还能看到.
    sudoz
        30
    sudoz  
       2018-08-27 13:44:59 +08:00
    写个 http 接口而已那么纠结?哪个用的熟用哪个……
    jhdxr
        31
    jhdxr  
       2018-08-27 13:47:42 +08:00
    @huangzhe8263 三目运算的优势就是写起来简单,而不只是把代码全放到一行。。。你这比普通的 if else 大概也就省了一个 a= 吧。。。
    jowan
        32
    jowan  
       2018-08-27 13:48:33 +08:00   1
    这个主要看你后端业务了
    如果只写 DB 的 CURD, 可以考虑 php 的 slim,然后配合 medoo 或者 eloquent
    另外如果后端业务略重的话可以考虑 symphony 或 laravel,集成的模块比较完善
    FrailLove
        33
    FrailLove  
       2018-08-27 13:48:46 +08:00
    我投 SpringBoot 一票 扩展起来也方便
    lhx2008
        34
    lhx2008  
       2018-08-27 13:57:53 +08:00 via Android
    spring boot 啊,哈哈,来歪楼的
    fox0001
        35
    fox0001  
       2018-08-27 14:14:54 +08:00 via Android
    支持楼上 spring boot
    huangzhe8263
        36
    huangzhe8263  
       2018-08-27 14:19:17 +08:00   1
    @jhdxr #31
    这样写可读性强更 pythonic 啊

    你要写起来简单?
    a = b > 1 and 1 or 0

    还要更简单?
    a = (1, 0)[b > 1]

    基础操作就别和 py 比了
    语法糖已经发展到一个地步了
    lygmqkl
        37
    lygmqkl  
       2018-08-27 15:04:45 +08:00
    有人说 py 不如 PHP,我想说 再深一步 PY 如 GO 吗?

    其实 熟悉什么用什么就好, 在有限的运行条件下,哪那么大差别。。。

    真正系统起来了,就不是简单的 py or PHP 了。
    Edwards
        38
    Edwards  
       2018-08-27 15:27:04 +08:00
    小程序和 php 应该是最搭的。一直都是这么干的。
    tanglangshan
        39
    tanglangshan  
       2018-08-27 15:29:08 +08:00
    @Edwards 微信里很多东西需要一边写一边刷新,php 最适合
    Vhc001
        40
    Vhc001  
    2018-08-27 15:33:06 +08:00   1
    在 Python 节点问 Python 和 PHP 哪个好,你咋不跑去美国问 美国 和 中国 哪个好呢?
    guosheng1987
        41
    guosheng1987  
       2018-08-27 15:35:33 +08:00   1
    php 是最好的语言!!
    nilrust
        42
    nilrust  
       2018-08-27 16:05:20 +08:00
    我觉得 js 才是和小程序最搭的!
    wocanmei
        43
    wocanmei  
       2018-08-27 16:14:08 +08:00   2
    lz 果然掌握了钓鱼贴的真谛啊,前有 python 和 php 哪个好,今天又来个 python 和 php 哪个开发 api 合适,后天题目可以来个 python 和 php 哪个执行效率高,大后天再来个 python 和 php 哪个语法优雅,……,真是子子孙孙无穷尽也

    有你提问的工夫,自己早实验出来了
    lansh2014
        44
    lansh2014  
       2018-08-27 17:16:59 +08:00
    会哪个用哪个啊,好久没写 web 了。有点小项目都用 tp5 的。( ps:我知道在鄙视链的最底端)
    vus520
        45
    vus520  
       2018-08-27 17:24:59 +08:00   1
    我司做安卓开发的同学,说 go 很强
    hbsfxlz
        46
    hbsfxlz  
       2018-08-27 17:26:32 +08:00
    springboot+1
    owenliang
        47
    owenliang  
       2018-08-27 18:04:08 +08:00
    无论哪个语言吧,都得找一个 MVC 框架,在官网的看入门教程,这得花费你 1-2 小时的时间。

    看完框架入门教程,一般是教你 ORM 操作数据库,你可能还得查一下缓存怎么用,再就是如何不用 ORM 直接写 SQL,这样就飞起来了。
    inframe
        48
    inframe  
       2018-08-27 18:45:04 +08:00 via Android   3
    自古有姜太公钓鱼
    wayne712
        49
    wayne712  
       2018-08-27 19:44:00 +08:00   1
    可以考虑 Ruby On Rails, 支持 api 专用模式,开发效率不是其他一般框架可比
    lsido
        50
    lsido  
       2018-08-27 19:52:38 +08:00 via Android
    一楼这话说的这么扭曲呢?
    现在对 PHP 还停留在混合吗?前后端分离是还没入眼咋的?
    楼主这种情况当然上 Spring boot 啊,还用说吗?
    (手动滑稽(:
    lincanbin
        51
    lincanbin  
       2018-08-27 19:56:39 +08:00
    看你的需求是什么了,如果是快速原型,高速迭代。那么 PHP 的生态比较丰富,可以快速出来一个成品,可以考虑。
    如果对代码质量、可维护性、性能需求较高,可以在主流技术中挑一门显式类型声明的强类型语言。
    Python 不适合做 Web 应用。
    devtk
        52
    devtk  
       2018-08-27 20:01:43 +08:00
    建议用 Golang
    LeungJZ
        53
    LeungJZ  
       2018-08-27 20:53:31 +08:00 via Android
    已经不想写 PHP 了,直接写 node 更爽。
    zqguo
        54
    zqguo  
       2018-08-27 21:05:44 +08:00
    必须 Py
    jhdxr
        55
    jhdxr  
       2018-08-27 22:35:53 +08:00
    @huangzhe8263 你的『基础操作就别和 py 比了』是指 py 的语法繁琐到反人类了吗?如果是的话我赞同。

    你真要争三目运算符的例子,不妨先看一眼别的语言里是怎样的,需要打几个字符,python 又要打多少。你打了这么多例子没有一个比?:简单的。。。另外最后一行 tuple 这么用。。。我只能说这么写早晚被人打死。。。
    huangzhe8263
        56
    huangzhe8263  
       2018-08-27 23:26:59 +08:00 via Android
    @jhdxr 别的语言我不懂? exo me ? c 语言入门的懂不懂?
    你觉得一眼看过去是:?简单还是 if else 简单?
    还是多种形式百花齐放好?

    py 的语法就是给你多重选择而不是强逼着你硬塞还恬不知耻死鸭子嘴硬。

    另外 tuple 这么用气死的是你吧哈哈
    可以说这么用不 pythonic 不好 ,但是不能说这种写法不 admissible,看来你语言的觉悟还没到啊

    懒得和这种以自我为中心的人争了白惹一地鸡毛

    已 block, 不谢
    summerwar
        57
    summerwar  
       2018-08-27 23:44:35 +08:00
    哪个熟悉用哪个
    greatbody
        58
    greatbody  
       2018-08-27 23:47:53 +08:00
    react+webpack+express+react native
    一套全部都是 js
    guodong110
        59
    guodong110  
       2018-08-28 00:01:16 +08:00 via Android
    支持 springboot
    mcfog
        60
    mcfog  
       2018-08-28 05:26:58 +08:00 via Android
    @huangzhe8263 你说的这两种写法(短路求职&布尔值当下标 cast 成 0 和 1 )非常多的语言包括 php 和 js 都有,但没有任何一个语言推荐用来代替三目的

    不如说短路求值的语义都和三目不一样了,a?b:c 里面如果 b 是 falsy 的你写 or c 试试?
    huangzhe8263
        61
    huangzhe8263  
       2018-08-28 07:32:06 +08:00 via Android
    huangzhe8263
        62
    huangzhe8263  
       2018-08-28 07:49:43 +08:00 via Android
    @mcfog
    不好意思手抖发出去了哦

    所以 py 标准三目是
    a = 1 if b = 0 else 0 啊
    只是说如果吹毛求疵非得要求精简
    或者在早期 py 没有官方标准

    一样有手段能实现
    MushishiXian
        63
    MushishiXian  
       2018-08-28 08:37:15 +08:00
    我觉得先考虑适用性和生态吧,包括你以后找工作的难度,而不是为了所谓的基础操作...
    randyzhao
        64
    randyzhao  
       2018-08-28 09:10:18 +08:00
    真的,哪个熟悉用哪个。
    KingPL
        65
    KingPL  
       2018-08-28 09:32:48 +08:00
    java SpringBoot, JRebel 开发神器,除了 mybatis 新增 xml 需要重启
    MaxTan
        66
    MaxTan  
       2018-08-28 09:43:57 +08:00
    已经打起来了
    alen
        67
    alen  
       2018-08-28 09:49:22 +08:00
    spring boot +1
    dany813
        68
    dany813  
       2018-08-28 10:29:02 +08:00
    写 api 不用 node ?
    liujavamail
        69
    liujavamail  
       2018-08-28 10:30:55 +08:00
    rails
    bpllzbh
        70
    bpllzbh  
       2018-08-28 10:33:45 +08:00
    @huangzhe8263 活到老 学到老 很舒服的一种写法
    NEETLEE
        71
    NEETLEE  
       2018-08-28 10:37:57 +08:00
    php 写接口不是美滋滋(内存常驻型除外)
    zengguibo
        72
    zengguibo  
       2018-08-28 11:09:13 +08:00
    php,等你以后招人的时候就知道了
    baiman521
        73
    baiman521  
    OP
       2018-08-28 14:33:44 +08:00
    @zengguibo 什么意思 ..等我以后招人的时候就知道了? 意思是 php 好招人而且开发效率更快吗
    iwiki
        74
    iwiki  
       2018-08-28 15:32:31 +08:00
    感觉用 php 比较方便
    Dkngit
        75
    Dkngit  
       2018-08-28 15:37:19 +08:00
    SpringBoot+1
    konakona
        76
    konakona  
       2018-08-28 15:46:39 +08:00
    都……都可以……只要有一套 API 规范,对着写就行了……
    zhuangzhuang1988
        77
    zhuangzhuang1988  
       2018-08-28 15:52:01 +08:00
    c#, java
    TommyLemon
        78
    TommyLemon  
       2018-08-28 16:28:07 +08:00
    @FrailLove @lhx2008 @fox0001 @hbsfxlz @KingPL @alen @Dkngit
    Python 的开发效率真的比 Java 高吗?
    www.zhihu.com/question/23496666/answer/472959182

    基于 SpringBoot 的 APIJSON 提供了自动化的 API,
    支持不写代码就自动生成文档,
    比起 Django,Flask 等 Python 快速开发框架,
    Java 用 APIJSON 开发效率都是默秒全。
    yc8332
        79
    yc8332  
       2018-08-28 16:34:02 +08:00
    哪个熟用哪个。这么简单。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5164 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 07:19 PVG 15:19 LAX 00:19 JFK 03:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86