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