python - 如何在 php 中使用 exec() 函数运行 python 文件
问题描述
这是我的 php 表单(form1.php)
<html>
<body>
<form action="process1.php" method="post">
E-mail: <input type="text" name="email" required ><br><br>
Password: <input type="text" name="pass" required ><br><br>
<input type="submit">
</form>
<html>
<body>
进程.php
<?php $email = $_POST["email"]; ?>
<?php $pass = $_POST["pass"]; ?>
<?php echo($email) ?> <br>
<?php echo($pass) ?> <br>
我想使用 $email , $pass 来自 php 的变量值。我想使用python将数据从变量发送到我的salesforce帐户到自定义对象......
蟒蛇文件
import requests
import json
from simple_salesforce import Salesforce
sf = Salesforce(username="USER", password= "PWD",security_token="" )
print(sf)
params = {
"grant_type": "password",
"client_id": "X0000XXXX",
"client_secret": "XX00000X",
"username": "XXX0XX",
"password": "XX0XX"
}
dataset = [{'email__c':'$email(this should be the variable from php)', 'password__c': '$pass (this should be the variable from php) '}]
sf.bulk.aryan__c.insert(dataset,batch_size=1,use_serial=True)
解决方案
首先,您需要使您的 python 文件 CLI 兼容。你需要抓住论点。最简单的方法是这样的:
import sys
def myFunc(user, pwd):
print(user,pwd)
if __name__ == '__main__':
if len(sys.argv) >= 3:
user = sys.argv[1]
pwd = sys.argv[2]
myFunc(user, pwd)
然后您可以从 PHP 调用脚本并提供凭据。实际上有几种方法可以做到这一点。虽然您的愿望exec
不会返回 python 脚本的输出
$output = passthru("python3 myScript.py $user $pwd");
$prog = 'python3 myScript.py '.$user.' '.$pwd;
$output = shell_exec($prog);
exec("python3 myScript.py $user $pwd");
推荐阅读
- visual-studio-code - 在 VS Code 中以 32 位运行应用程序
- office-ui-fabric - 将颜色应用于特定尺寸的标签 - FluentUI
- reactjs - 多次声明一个打字稿模块是否有效?
- angular - 在可观察条件下可观察 - Angular 10
- html - 如何始终显示 Bootstrap 4 Jumbotron 中使用的背景图像的整个高度和宽度?
- drools - 升级 Kie Container 时,DROOLS Kie Scanner 是否保留有状态的 Kie Session 内容?
- flutter - 'If null' 运算符返回一个空字符串
- mysql - 使用动态创建的 JSON MySql 更新列值
- python - Django Query 字符串在会话期间停留在 url
- javascript - 如何使用 for 循环将一段重复的 javascript 打印到 HTML 文档?