将Python应用程序集成到PHP网站中。

4

这可能听起来很疯狂,但...

对于我们重新设计的项目网站,我们想将Trac(作为代码浏览器、开发者wiki和问题跟踪器)集成到网站设计中。当然,这很困难,因为Trac是用Python编写的,而我们的网站是用PHP编写的。这里有没有人知道如何将头部和底部(PHP)集成到Trac模板中(最好不要通过命令行调用一个或两个PHP进程来实现)?


在Genshi中,应该可以使用命令包含外部文件,这是trac使用的模板语言,但我从未弄清楚如何操作。我只能将本地文件(不带http://)包含进来,但无法更进一步。期待看到好的答案。 - Pekka
谢谢你们的回答,我会看看情况,然后接受适当的答案... ;) - Franz
3个回答

1

最好的选择可能是使用Python重新编写页眉和页脚。

如果页眉和页脚相对静态,您也可以使用PHP生成它们一次(或每x分钟一次),并从文件系统中包含它们。(您可能已经考虑过这个想法,并且因为您的网站太动态而放弃了这个想法?)

虽然我不太建议这样做,但您也可以使用某种形式的AJAX来加载页面的部分内容,没有任何阻止您从基于PHP的系统中加载此内容。这可以保持所有部分的动态性。在加载时,您的页面可能看起来很丑陋,并且现在会产生比所需更多的服务器访问量,但如果这不是一个大型网站,那么这可能是一个好的选择。

警告:如果两个系统都有用户登录,则您可能会遇到问题,因为人们只能登录到您网站的一半。


我们已经处理了用户集成,是的(基本上我们不会将两者集成)。页眉和页脚有什么动态的?嗯...页脚是静态的,但是使用PHP生成(因此可以缓存)。页眉是动态的:它显示用户是否在站点上登录(这不是必要的,好吧)以及语言(对于Trac不适用)。 - Franz
如果您只想显示用户是否已登录,我建议制作一个静态的页眉和页脚,并通过 AJAX 调用替换显示用户是否已登录的部分。 - Simon Groenewolt

1

抽象化是你的好朋友。

将原始HTML与PHP隔离,并使用简单的模板语言放在页眉和页脚中,如果可能的话,编写Python和PHP接口以访问您的模板语言。或者,重用其他人所做的工作。 此图表 显示模板属性语言(TAL) 支持Python和PHP5。


+1 这是个好主意。然而,头部脚本包含一些其他的(PHP)内容,用于获取用户对象等信息,以便知道要显示哪个链接等等... 这使得它变得有点困难。或者我忘记了什么? - Franz

0

你的Python代码将可以访问用户的cookies。最好使用模板,但如果没有可用的模板(或者头/尾部非常简单等),你可以简单地将PHP头和尾部代码移植到Python中,使用已经存在的cookies来查询数据库或者进行其他必要的操作。

如果你想保留PHP版本中的登录、注册和其他链接,只需链接到PHP端,然后在PHP完成其工作后重定向回Trac即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接