我想在Laravel中运行我的Python脚本。 当我在浏览器中按下运行按钮时,它将运行我的Python脚本并通过控制器在页面上显示输出...。
我尝试了很多方法,但是脚本无法运行...
我也在使用
use Symfony\Component\Process\Process;
但是当我运行代码时,它只会使终端闪烁,而没有其他内容...
请指导我如何从Laravel运行Python脚本。
答案 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();
}
}
我希望这是清楚而直接的