HTML表单操作Python > 如何保存浏览器生成的本地文件

1 投票
1 回答
1492 浏览
提问于 2025-04-18 13:38

我有一个表单,当我提交这个表单时,它会运行一个Python脚本来处理数据。当我点击提交按钮时,它会弹出一个下载窗口,询问我是否要保存pyscript.py,而不是直接显示我最后的打印结果。

HTML:

<html>
<form action="/cgi-bin/pyscript.py" method="get" class="darkform">
  <div id="button">
    < input type="submit" value="Generate" class="button">
  </div>
</form>
</html>

Python

f = open(confdir + _hostname_ + "_config.txt" ,'w')
f.write(newdata)
f.close()

print newdata

这个脚本会创建一个本地的.txt文件,我希望提交按钮能生成这个文件,并且要么直接在浏览器中显示,要么提示我下载这个.txt文件。现在,当你点击提交时,它会开始下载pyscript.py。如果我把下载的文件扩展名改成.txt,它就能正常打开。我得提一下,这是我写的第一个Python脚本,所以我知道在最后简单地打印结果可能不是实现我目标的最佳方法。

如果有人能提供帮助,我会非常感激,因为我在论坛上搜索了很久,也找不到相关的信息。

1 个回答

0

因为你没有提供你使用的“Web服务器”的具体信息,所以我只能给出一个很笼统的回答:

  1. 你的“Web服务器”没有正确配置CGI,特别是关于Python(*.py)作为CGI的部分。可以参考这个链接了解更多:使用CGI生成动态内容,这是针对Apache服务器的。
  2. 如果你希望用户的浏览器能够下载文件并把它当作可下载的文件处理,那么你的响应必须包含以下HTTP头信息:

头信息:

Content-Disposition: attachment; filename="<file name.ext>"

撰写回答