V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
leisurelylicht
V2EX  ›  程序员

关于网站架构的疑问?

  •  
  •   leisurelylicht · 2016-09-05 09:55:50 +08:00 · 3758 次点击
    这是一个创建于 3001 天前的主题,其中的信息可能已经有所发展或是发生改变。

    客户要求做一个网站,用 php 开发,但是要求 php 连接数据的部分全部用 python 封装一层。

    就是用 python 连接数据库,然后把不同的 sql 语句全部写成不同的文件或者函数,然后 php 后天执行 python 脚本获取返回的数据内容。

    说是为了提高可移植性。

    我想了几天没太想明白这跟移植性有什么关系, php 是跨平台的语言啊。

    还是说这么做有什么其他优势?有人这么做过吗?

    小弟没怎么做过网站,经验较少所以来请教下大家。

    21 条回复    2016-09-06 13:11:14 +08:00
    wobuhuicode
        1
    wobuhuicode  
       2016-09-05 10:10:09 +08:00
    估计对接的人就会 python
    isno
        2
    isno  
       2016-09-05 10:10:39 +08:00
    基本没见过这种做法,优势想不出来
    sylecn
        3
    sylecn  
       2016-09-05 10:15:31 +08:00 via Android
    没什么优势。只增加了访问数据库的开销。
    aeshfawre
        4
    aeshfawre  
       2016-09-05 10:24:32 +08:00
    不明白他说的可移植性,那就去问他撒。
    估计人家有自己的想法,想法背后有个动机的,他肯定是有个目的,你弄清楚之后,你有更好的方案就可以向他说的。
    zhangfan
        5
    zhangfan  
       2016-09-05 10:33:46 +08:00
    估计为了代码安全。

    像这样的需求,楼主建议一下客户,做成 API 接口这样就可以了。
    leisurelylicht
        6
    leisurelylicht  
    OP
       2016-09-05 11:10:50 +08:00
    @wobuhuicode 不是,没人会 python , python 部分都是我做的, python 部分主要是要做一些科学计算,然后他就让我把数据库也封装了。
    @zhangfan api 的接口的话是不是 Python 也需要做一个网站后台?

    @aeshfawre 详细问了,说是为了保证如果以后不用 php 的话可以快速替换成别的语言做后台。
    zhangfan
        7
    zhangfan  
       2016-09-05 11:12:36 +08:00
    @leisurelylicht 不需要后台,但是要详尽的说明文档。
    ppwangs
        8
    ppwangs  
       2016-09-05 11:20:42 +08:00
    他的可移植性意思是万一搞 PHP 这个人不搞了,将来换 JAVA NODE 都可以搞吧

    给他推荐 restful 吧……
    wyntergreg
        9
    wyntergreg  
       2016-09-05 12:29:19 +08:00
    详细问了,说是为了保证如果以后不用 php 的话可以快速替换成别的语言做后台。
    你用 php 给他封一层也一样啊,没必要用 python
    HypoChen
        10
    HypoChen  
       2016-09-05 12:48:19 +08:00
    用 python 写一个提供 restful api 的微服务 Server ,然后前面的程序调用 Server 的 api
    leisurelylicht
        11
    leisurelylicht  
    OP
       2016-09-05 13:49:13 +08:00
    @ppwangs @wyntergreg 他们是想随时把 php 换掉,做 php 的同事听到表示哔了狗了。

    @zhangfan 请问你会用什么做这种 api 的接口?学习下。
    zhangfan
        12
    zhangfan  
       2016-09-05 13:58:33 +08:00
    @leisurelylicht 我不会写程序,我只是个产品经理。

    你楼上两位不是提供解决思路了吗
    sudoz
        13
    sudoz  
       2016-09-05 13:59:49 +08:00
    我想知道为什么还要用 Python 封一层?
    9hills
        14
    9hills  
       2016-09-05 14:02:27 +08:00
    可移植性应该不是用脚本封装一层,而是用 API 封装一层

    不过这个也仅限于一些数据驱动起来比较麻烦的情况(比如某种特殊的数据库只有某个语言的 SDK 、数据源有比较严格的访问频率等限制),成熟的数据库没必要
    silov
        15
    silov  
       2016-09-05 14:09:00 +08:00
    那还用 PHP 干嘛。。。都用 python 做呗。。。
    990510254
        16
    990510254  
       2016-09-05 14:55:43 +08:00
    @leisurelylicht 你的服务器用的哪里的呢?
    justfindu
        17
    justfindu  
       2016-09-05 14:58:37 +08:00
    他只是想用 php 当做一个前端解析而已 哈哈~ 哭
    leisurelylicht
        18
    leisurelylicht  
    OP
       2016-09-05 15:39:06 +08:00
    @9hills 数据库使用的是 sqlite

    @silov 我也是这么想的,可能是因为 python 招不到足够的人,毕竟西安做 python 的很少。

    @sudoz 我也想知道
    leisurelylicht
        19
    leisurelylicht  
    OP
       2016-09-05 15:40:20 +08:00
    @990510254 ?本地的。
    jimzhong
        20
    jimzhong  
       2016-09-06 10:54:25 +08:00
    SQL 是有标准的,可以跨平台。为什么还要用 Python 包?
    网站数据库为什么用 sqlite ?
    bk201
        21
    bk201  
       2016-09-06 13:11:14 +08:00 via iPhone
    很明显是要换掉做 php 的.用 python ,目的是防止 sql 被写进 php 难以分离吧,而且 python 环境搭建会比 php 方便吧.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   963 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:09 · PVG 05:09 · LAX 13:09 · JFK 16:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.