我有一个简单的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:如何发送POST请求?但不一样,因为这是一个更简单、更直接的例子,说明如何在Python中应用requests.post函数。我曾尝试在上面的线程中实现该解决方案,但再次只得到了原始html的文本。
您的Post请求中似乎有问题:
>>> r = requests.post("http://localhost/practice/SimpleForm/postform.html",data)
^^^^
表单试图指向postform.php
,而不是html
文件。只需将其更改为:
>>> r = requests.post("http://localhost/practice/SimpleForm/post.php",data)