从Laravel应用程序运行Python脚本

时间:2020-05-31 07:20:17

标签: python laravel

我想在Laravel中运行我的Python脚本。 当我在浏览器中按下运行按钮时,它将运行我的Python脚本并通过控制器在页面上显示输出...。

我尝试了很多方法,但是脚本无法运行...

我也在使用

use Symfony\Component\Process\Process;

但是当我运行代码时,它只会使终端闪烁,而没有其他内容...

请指导我如何从Laravel运行Python脚本。

1 个答案:

答案 0 :(得分:2)

假设您已经通过作曲家安装了symfony/process

composer require symfony/process

您的视图中有一个表单,该表单指向带有按钮的动作

<form action="/" method="post">
    @csrf
    <button type="submit">Run Python</button>
</form>

还有routes/web.php中指向控制器的路由

Route::post('/', 'PythonController@run');

在Laravel应用程序目录的根目录中还有一个名为python.py的Python脚本,其中包含内容

print("Hello, World from Python!")

还有一个控制器方法来运行过程并返回输出

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Symfony\Component\Process\Process;

class PythonController extends Controller
{
    public function run(Request $request)
    {
        $process = new Process(['python', base_path() . '/python.py']);
        $process->run();
        return $process->getOutput();
    }
}

您将拥有这样的视角 Laravel Blade View

然后单击按钮,您将获得如下所示的Python输出 Python Output

我希望这是清楚而直接的