我有一个按钮导出:
<button class="aptButton" formaction="/export/" type="submit">export</button>
我在/ export /
中有这个的index.cgi
#! /apollo/sbin/envroot $ENVROOT/bin/python
# -*- coding: utf-8 -*-
import cgitb
cgitb.enable()
import cgi
def main():
print "Content-Type: text/html"
print
form = cgi.FieldStorage()
results = helpers.getResults()
environment = helpers.get_environment()
print environment.get_template('export.html').render(
results = results)
main()
我在我的export.html
中有这个<!doctype html>
{% for id in results %}
{{ write_results_to_file(id) }}
{% endfor %}
我正在尝试将结果下载到制表符分隔文件中,所以我想写入本地文件,然后发送(下载)文件,但我不知道如何进行下载部分,我不能使用烧瓶或django有一些好的lib ..有没有其他的lib我可以用来将结果下载到用户桌面上的制表符分隔文件?
export.py
def write_results_to_file(result):
local_filename = "/home/testing.txt"
# NOTE the stream=True parameter
with open(local_filename, 'w') as f:
f.write('\t'.join(result) + '\n')
答案 0 :(得分:3)
如果您使用优质的老式CGI生成制表符分隔文件,
您需要做的就是打印一个合适的标题,然后在stdout
上打印内容,如下所示:
def main():
form = cgi.FieldStorage()
results = helpers.getResults()
print "Content-Type: text/plain"
print "Content-Disposition: attachment; filename=testing.txt"
print
for result in results:
print '\t'.join(result) + '\n'
main()
基本部分是print
标题的2行,
然后是一个空白行与内容分开,
其次是纯文本内容。
如果您想通过点击导出按钮实现此目的, 那么你可以,例如:
如果您需要进一步的帮助,请告诉我。