python - 从 Laravel 应用程序运行 Python 脚本
问题描述
我想在 Laravel 中运行我的 Python 脚本。当我在浏览器中按下运行按钮时,它会运行我的 Python 脚本并通过控制器在页面上显示输出......
我尝试了很多方法,但脚本无法运行......
我也在使用
use Symfony\Component\Process\Process;
但是当我运行代码时,它只会闪烁终端,没有别的......
请指导我如何从 Laravel 运行 Python 脚本。
解决方案
假设您已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();
}
}
推荐阅读
- sql - 寻找只写历史书的作者
- javascript - 显示 Google Cloud Speech-to-Text
- javascript - 使用 jest 和 react-testing-library 编写测试以检查本地 setState 调用
- python - 我不断收到 Django OAuth Toolkit 的 403 错误
- powerbi - Power BI V2 - 审核或使用指标
- javascript - React - 将从 API 获取的数据作为道具传递给组件
- .net - 打印默认凭据
- hive - 为特定会话设置 HBase 属性
- mysql - 根据轨道索引有条件地渲染歌词?
- c# - 从另一个类调用方法时出现语法错误