我有一个简单的html表单(postform.html),它接收两个用户输入并将它们传递给php文件(post.php)。然后php文件回显一个包含用户输入的字符串。
我是从本地主机运行的,表单的代码如下所示:
<form action = "post.php" method = "post">
Name <input type = "text" name = "user"><br />
Company <input type = "text" name = "comp"> <br />
<input type = "submit" value = "Submit Info">
</form>
我想使用Python请求模块将信息发布到postform.html中,然后检索生成的echo的源代码。我在导入请求模块后在Python命令提示符中尝试了以下内容:
>>> data = {'user': 'Bob', 'comp': 'Walmart'}
>>> r = requests.post("http://localhost/practice/SimpleForm/postform.html",data)
>>> print(r.text)
<html>
<head><title> Post Method in Action </title></head>
<body>
<form action = "post.php" method = "post">
Name <input type = "text" name = "user"><br />
Company <input type = "text" name = "comp"> <br />
<input type = "submit" value = "Submit Info">
</form>
</body>
<html>
正如您所看到的,该变量返回的文本是包含不是我想要的表单的原始html,我试图将信息发布到表单并检索结果的源html(post.php)。
在某些方面,我的问题类似于Python: How to send POST request?但不一样,因为这是一个更简单,更简单的示例,说明如何在Python中应用requests.post函数。我已经尝试在上面的线程中实现解决方案但是只获得了原始html的文本。
答案 0 :(得分:2)
好像你的帖子请求中有问题:
>>> r = requests.post("http://localhost/practice/SimpleForm/postform.html",data)
^^^^
表单试图指向postform.php
,而不是html
文件。只需将其更改为:
>>> r = requests.post("http://localhost/practice/SimpleForm/post.php",data)