Python Post - PHP 请求
Python Post - PHP Request
我正在尝试创建一个 php 页面,它从我的 python 代码中获取数据并将它们显示为 table。
r = requests.post('http://localhost/index.php', data={"iv":a,"ven":b,"hem":c,"card":d,"ecg":e})
print(r.text)
在上面的代码中,我 post 数据然后打印它以检查是否一切正常。我的 r.text 输出
<table><tr><th>IV Pump</th><th>Ventilator</th> <th>Heart Monitor</th><th>Cardiac Machine</th><th>Echocardiogram</th></tr><tr><td>off</td><td>on</td><td>off</td><td>off</td><td>off</td></tr></table>
这看起来不错,因为我可以得到 a、b、c、d、e(on/off 基本上)。但是,当我打开 index.php 时,我看不到那些 "on" 和 "off"。我是服务器方面的新手,PHP,等等。我的错误可能是非常愚蠢的。我应该将 post 数据存储在某个地方吗?我的 index.php:
<?php
$iv=$_REQUEST['iv'];
$ven=$_REQUEST['ven'];
$hem=$_REQUEST['hem'];
$card=$_REQUEST['card'];
$ecg=$_REQUEST['ecg'];
echo '<table>';
echo '<tr>';
echo '<th>IV Pump</th>';
echo '<th>Ventilator</th> ';
echo '<th>Heart Monitor</th>';
echo '<th>Cardiac Machine</th>';
echo '<th>Echocardiogram</th>';
echo '</tr>';
echo '<tr>';
echo '<td>';
echo $iv;
echo '</td>';
echo '<td>';
echo $ven;
echo '</td>';
echo '<td>';
echo $hem;
echo '</td>';
echo '<td>';
echo $card;
echo '</td>';
echo '<td>';
echo $ecg;
echo '</td>';
echo '</tr>';
echo '</table>';
?>
我的r.text没问题,但是在网页中我看不到请求数据,table单元格是空的。有什么不同?因为我知道r.textreturns页面内容,所以index.php一定是错误的,我猜是存储数据。
当您向服务器发送 HTTP request 时,该服务器将 return 呈现的网页给 那个 用户。这意味着 requests
将得到正确的响应。
但是,当您在浏览器中打开网页时,您正在向该服务器发出新请求,该服务器将再次呈现该页面。由于这次您没有传递 $_REQUEST['iv']
等值,因此 table 将显示为空白。
您有几个选项取决于您想要做什么:
将信息存储在数据库中
您可以将该信息存储在数据库中。例如,一些数据库是 SQLite3 or MySQL。我省略了确切的数据库 insertion/reading 实现,因为它在您选择的数据库之间有所不同。
一个简单的方法可能是:
<?php
$iv=$_REQUEST['iv'];
// insert other variables etc.
// Check if this is a POST request
if ($_SERVER['REQUEST_METHOD'] === "POST") {
// INSERT DATA INTO YOUR DATABASE AS APPROPRIATE
// You can also echo back the table if you want
// Else it might be a GET request
} elseif ($_SERVER['REQUEST_METHOD'] === "GET") {
// READ DATA FROM DATABASE
// echo table with the data from the database
}
?>
使用URL参数
或者您可以使用 URL parameters 像这样对您的数据进行编码:
# In your Python code
# Notice that requests.post changed to requests.get and data changed to params
r = requests.get('http://localhost/index.php', params={"iv":a,"ven":b,"hem":c,"card":d,"ecg":e})
# You can now access this specific URL to see the populated table
# The URL will look something like http://localhost/index.php?iv=a&ven=b/
print(r.url)
请注意,这需要您访问特定的 URL,如果您在没有参数的情况下访问基础 URL(即 https://localhost/index.php
),则此操作无效。
我正在尝试创建一个 php 页面,它从我的 python 代码中获取数据并将它们显示为 table。
r = requests.post('http://localhost/index.php', data={"iv":a,"ven":b,"hem":c,"card":d,"ecg":e})
print(r.text)
在上面的代码中,我 post 数据然后打印它以检查是否一切正常。我的 r.text 输出
<table><tr><th>IV Pump</th><th>Ventilator</th> <th>Heart Monitor</th><th>Cardiac Machine</th><th>Echocardiogram</th></tr><tr><td>off</td><td>on</td><td>off</td><td>off</td><td>off</td></tr></table>
这看起来不错,因为我可以得到 a、b、c、d、e(on/off 基本上)。但是,当我打开 index.php 时,我看不到那些 "on" 和 "off"。我是服务器方面的新手,PHP,等等。我的错误可能是非常愚蠢的。我应该将 post 数据存储在某个地方吗?我的 index.php:
<?php
$iv=$_REQUEST['iv'];
$ven=$_REQUEST['ven'];
$hem=$_REQUEST['hem'];
$card=$_REQUEST['card'];
$ecg=$_REQUEST['ecg'];
echo '<table>';
echo '<tr>';
echo '<th>IV Pump</th>';
echo '<th>Ventilator</th> ';
echo '<th>Heart Monitor</th>';
echo '<th>Cardiac Machine</th>';
echo '<th>Echocardiogram</th>';
echo '</tr>';
echo '<tr>';
echo '<td>';
echo $iv;
echo '</td>';
echo '<td>';
echo $ven;
echo '</td>';
echo '<td>';
echo $hem;
echo '</td>';
echo '<td>';
echo $card;
echo '</td>';
echo '<td>';
echo $ecg;
echo '</td>';
echo '</tr>';
echo '</table>';
?>
我的r.text没问题,但是在网页中我看不到请求数据,table单元格是空的。有什么不同?因为我知道r.textreturns页面内容,所以index.php一定是错误的,我猜是存储数据。
当您向服务器发送 HTTP request 时,该服务器将 return 呈现的网页给 那个 用户。这意味着 requests
将得到正确的响应。
但是,当您在浏览器中打开网页时,您正在向该服务器发出新请求,该服务器将再次呈现该页面。由于这次您没有传递 $_REQUEST['iv']
等值,因此 table 将显示为空白。
您有几个选项取决于您想要做什么:
将信息存储在数据库中
您可以将该信息存储在数据库中。例如,一些数据库是 SQLite3 or MySQL。我省略了确切的数据库 insertion/reading 实现,因为它在您选择的数据库之间有所不同。
一个简单的方法可能是:
<?php
$iv=$_REQUEST['iv'];
// insert other variables etc.
// Check if this is a POST request
if ($_SERVER['REQUEST_METHOD'] === "POST") {
// INSERT DATA INTO YOUR DATABASE AS APPROPRIATE
// You can also echo back the table if you want
// Else it might be a GET request
} elseif ($_SERVER['REQUEST_METHOD'] === "GET") {
// READ DATA FROM DATABASE
// echo table with the data from the database
}
?>
使用URL参数
或者您可以使用 URL parameters 像这样对您的数据进行编码:
# In your Python code
# Notice that requests.post changed to requests.get and data changed to params
r = requests.get('http://localhost/index.php', params={"iv":a,"ven":b,"hem":c,"card":d,"ecg":e})
# You can now access this specific URL to see the populated table
# The URL will look something like http://localhost/index.php?iv=a&ven=b/
print(r.url)
请注意,这需要您访问特定的 URL,如果您在没有参数的情况下访问基础 URL(即 https://localhost/index.php
),则此操作无效。