关于网站架构的疑问? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
leisurelylicht
V2EX    程序员

关于网站架构的疑问?

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

    客户要求做一个网站,用 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 的话可以快速替换成别的语言做后台。
        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     Solana     1369 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 16:41 PVG 00:41 LAX 09:41 JFK 12:41
    Do have faith in what you're doing.
    ubao 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