为了账号安全,请及时绑定邮箱和手机立即绑定

Python Post - PHP 请求

Python Post - PHP 请求

烙印99 2022-01-18 15:33:56
我正在尝试创建一个 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 一定是错误的,我猜它是关于存储数据的。
查看完整描述

1 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

当您向服务器发出HTTP 请求时,该服务器会将呈现的网页返回给该用户。这意味着requests将得到正确的响应。


但是,当您在浏览器中打开网页时,您正在向该服务器发出新请求,该服务器将再次呈现该页面。由于这次您没有传递$_REQUEST['iv']etc. 值,因此该表将显示为空白。


您有几个选项,具体取决于您要执行的操作:


将信息存储在数据库中

您可以将该信息存储在数据库中。例如,一些数据库是SQLite3或MySQL。我省略了确切的数据库插入/读取实现,因为它在您选择的数据库之间有所不同。


一个简单的方法可能是:


<?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 参数对数据进行编码,如下所示:


# 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。


查看完整回答
反对 回复 2022-01-18
  • 1 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号