首页 > 解决方案 > 从 Laravel 应用程序运行 Python 脚本

问题描述

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

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

我也在使用

use Symfony\Component\Process\Process;

但是当我运行代码时,它只会闪烁终端,没有别的......

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

标签: pythonlaravel

解决方案


假设您已symfony/process通过 composer安装

composer require symfony/process

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

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

并且其中的一条路线routes/web.php指向控制器

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

和一个 Python 脚本python.py,在你的 Laravel 应用程序目录的根目录中命名,内容如下

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 刀片视图

当按钮被点击时,你会得到这样的 Python 输出 Python 输出


推荐阅读