将Python应用集成到PHP网站中
这听起来可能有点疯狂,但还是想说说...
我们正在重新设计项目网站,想把 Trac(作为代码浏览器、开发者维基和问题跟踪器)整合到网站的设计中。不过,这确实有点难,因为 Trac 是用 Python 写的,而我们的网站是用 PHP 写的。这里有没有人知道怎么把网站的头部和底部(PHP)整合进 Trac 的模板里(最好是不要通过命令行调用 PHP 进程来实现头部和底部)?
3 个回答
你的Python代码可以访问用户的cookies。最好使用模板,但如果没有模板可用(或者页眉/页脚很简单,或者其他原因),你可以直接把PHP的页眉和页脚代码转换成Python,利用已经存在的cookies来查询数据库或做其他需要的事情。
如果你想保留登录、注册等链接,和PHP版本一样,只需链接到PHP那边,然后在PHP完成工作后再重定向回Trac。
最好的办法可能是用Python重新写一下网站的头部和底部。
如果头部和底部的内容比较固定,你也可以用PHP生成一次,然后从文件系统中引入它们(或者每隔一段时间生成一次)。(你可能已经考虑过这个方法,但觉得你的网站太动态,不能用这种方式对吧?)
虽然我不太推荐,但你也可以用某种AJAX技术来加载页面的部分内容,而且没有什么阻止你从基于PHP的系统加载这些内容。这可以让你的网站各部分保持动态。不过,这样在加载的时候页面可能会看起来很糟糕,而且会增加服务器的请求次数,但如果你的网站不大,这可能还好。
警告:如果你在两个系统上都有用户登录功能,可能会出现用户只在你网站的一半登录的问题。
抽象化是你的好帮手。
如果可以的话,把原始的HTML代码和PHP代码分开,放在简单的模板语言中,尤其是在页面的头部和底部。然后为你的模板语言写一些Python和PHP的接口。或者,你也可以利用别人已经做好的工作。这个图表显示了模板属性语言(TAL)支持Python和PHP5。