2
我有一个按钮出口:如何用Python下载文件(Jinja2)点击导出按钮?
<button class="aptButton" formaction="/export/" type="submit">export</button>
,我有这个在/导出/
的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 %}
我想下载结果到一个制表符分隔的文件,所以我想写ng到本地文件,然后发送(下载)文件,但我不知道如何做下载部分,我不能使用瓶或django哪些有一些很好的libs ..有没有其他的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')
我跟着你的例子,但当我点击导出,它重定向到另一个URL并显示Content-Type:text/plain Content-Disposition:attachment; filename = testing.txt ATTTGTA ATTTGTA ATTTGTA ATTTGTA在浏览器中 – user3407267
我做错了什么? – user3407267
我使用了结果= [[“ATTTGTA”],[“ATTTGTA”,“ATTTGTA”,“ATTTGTA”]]来查看它是否有效。它应该下载每个列表在一个新的行与制表符分隔值,所以ATTTGTA在第一行和ATTTGTA ATTTGTA ATTTGTA在第二行应该被下载到一个文件(如保存或其他) – user3407267