猿问

Python Post - PHP 请求

我正在尝试创建一个 php 页面,该页面从我的 python 代码中获取数据并将它们显示为表格。


r = requests.post('http://localhost/index.php', data={"iv":a,"ven":b,"hem":c,"card":d,"ecg":e})

print(r.text)

在上面的代码中,我发布数据然后打印它以检查一切是否正常。我的 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(基本上是开/关)。但是,当我打开 index.php 时,我看不到那些“on”和“off”。我是服务器、PHP 等方面的新手。我的错误可能非常愚蠢。我应该将帖子数据存储在某个地方吗?我的 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 没问题,但是在网页中我看不到请求数据,表格单元格是空的。有什么区别?据我所知 r.text 返回页面内容,所以 index.php 一定是错误的,我猜它是关于存储数据的。


烙印99
浏览 152回答 1
1回答

素胚勾勒不出你

当您向服务器发出HTTP 请求时,该服务器会将呈现的网页返回给该用户。这意味着requests将得到正确的响应。但是,当您在浏览器中打开网页时,您正在向该服务器发出新请求,该服务器将再次呈现该页面。由于这次您没有传递$_REQUEST['iv']etc. 值,因此该表将显示为空白。您有几个选项,具体取决于您要执行的操作:将信息存储在数据库中您可以将该信息存储在数据库中。例如,一些数据库是SQLite3或MySQL。我省略了确切的数据库插入/读取实现,因为它在您选择的数据库之间有所不同。一个简单的方法可能是:<?php$iv=$_REQUEST['iv'];// insert other variables etc.// Check if this is a POST requestif ($_SERVER['REQUEST_METHOD'] === "POST") {&nbsp; &nbsp;// INSERT DATA INTO YOUR DATABASE AS APPROPRIATE&nbsp; &nbsp;// You can also echo back the table if you want// Else it might be a GET request} elseif ($_SERVER['REQUEST_METHOD'] === "GET") {&nbsp; &nbsp;// READ DATA FROM DATABASE&nbsp; &nbsp;// echo table with the data from the database}?>使用网址参数或者,您可以使用URL 参数对数据进行编码,如下所示:# In your Python code# Notice that requests.post changed to requests.get and data changed to paramsr = 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。
随时随地看视频慕课网APP

相关分类

Python
我要回答