你能用Joomla显示python的web代码吗?

2024-10-01 09:22:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在建立一个joomla3web站点,但是我需要定制相当多的页面。我知道我可以在Joomla中使用PHP,但是Python是否也可以与它一起使用呢?具体来说,我希望使用CherryPy编写一些自定义代码,但我希望它们显示在本地Joomla页面中(而不仅仅是iframe)。这可能吗?在


Tags: 代码站点页面cherrypyphpiframejoomlajoomla3web
3条回答

PHP执行Python“脚本”

这将适用于脚本,脚本执行任务并返回输出,而不是CherryPy。在

 <?php
    // execute your Python script from PHP
    $command = escapeshellcmd('myPythonScript.py');
    $output = shell_exec($command);

    echo $output;

    // take response content to embed it into the page
 ?>

PHP访问Python/CherryPy服务的网站

^{pr2}$

这将启动一个http://localhost:8080,您应该看到Hello world!。在

现在您可以通过访问CherryPy的localhost:port来访问它的输出。 表现不好,但很管用。在

<?php
    $output = file_get_contents('http://localhost:8080/');
    echo $output;
?>

Joomla+Ajax访问pyton/CherryPy服务的网站

另一种解决方案是,不使用PHP获取内容,而是从客户端执行获取。基本上,您将使用Ajax请求到CherryPy服务的网站,获取其内容并将其嵌入Joomla服务页面的dom中。在

 // add jQuery Ajax reqeust from your Joomla page to CherryPy
 $.ajax({
    url: "https://localhost:8080/", // <-- access the 2nd served website
    type: 'GET',
    success: function(res) {
      //console.log(res);
      alert(res);
      $("#someElement").html(res);
    }
 });

从不同来源(Joomla和CherryPy)构造页面的最有效方法可能是使用Edge Side Includes。在

基本上,您运行一个Joomla实例,该实例为包含ESI标记的文档提供服务。您可以运行一个CherryPy实例,该实例为您想要放置在esi标记位置上的片段提供服务。然后运行一个支持ESI-like-varnish的反向代理来将它们缝合在一起。在

这看起来像是很多运动部件,但它的反应就像。。。真正有反应的东西。调整缓存部分,可以减轻Joomla和数据库的大量工作。在

其他答案中的exec方法适用于打印某些内容的小python脚本,但对于CherryPy来说,不是。在

您可以通过php文件执行它。试试这个:

exec("python/path/your-script.py");  

相关问题 更多 >