私はボタンの輸出があります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 %}
結果をタブで区切られたファイルにダウンロードしようとしていますので、私はwritiローカルファイルに保存してからファイルをダウンロード(ダウンロード)しますが、ダウンロード部分をどうやって行うのか分かりません。フラスコやdjangoには良いlibsがあります。ユーザーのデスクトップ上にタブで区切られたファイルに結果が表示されますか?
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')
私はurの例に従っていますが、エクスポートをクリックすると別のURLにリダイレクトされ、Content-Type:text/plain Content-Disposition:attachment;と表示されます。 filename = testing.txtブラウザのATTTGTA ATTTGTA ATTTGTA ATTTGTA – user3407267
何か間違っていますか? – user3407267
私はresults = [["ATTTGTA"]、["ATTTGTA"、 "ATTTGTA"、 "ATTTGTA"]]を使ってそれが動作するかどうかを調べました。それは、タブで区切られた値で新しい行に各リストをダウンロードすることになっているので、最初の行のATTTGTAと2行目のATTTGTA ATTTGTA ATTTGTAはファイルに保存する必要があります(saveまたは何かのように) – user3407267