2015-10-30 7 views
5

フラスコ生成のWebページにボタンを配置し、ユーザーがボタンをクリックしたときにhtmlページをファイルとしてダウンロードさせたいと思います。私が想像しているのはレンダリングされたhtmlをに保存してsend_fileで送信することですが、レンダリングしたページをファイルオブジェクトに保存する方法が見つかりません。どうやってやるの?フラスコ生成のhtmlページをダウンロードする

+0

ctrl-sのような意味ですか、右クリックして>ページを保存するのですか?なぜ彼らにそれをさせるのではないのですか?これにより、画像やその他のリンクされたリソースも処理できます。 – davidism

+0

コメントありがとう!いくつかの理由があります。まず、このウェブページは技術に精通していない人のためのものです。だから私は彼らにそのトリックを知らせることを期待していません。第二に、私はそれらにほとんど同じWebページを提供したいと思います。最後に、私はいくつかの失敗を個人的に経験しているので、ブラウザがウェブページを非常に良い方法で保存するという仕事を特に信じていません。ちなみに、このWebページは科学的データを生成することで、コンテンツとターゲットオーディエンスは通常のWebページと少し異なります。 –

答えて

4

あなたはこのような何かを試みることができる:それはテストされていませんが、あなたのアイデアを与える必要があります

import StringIO 
from flask import Flask, send_file, render_template 

def page_code(): 
    strIO = StringIO.StringIO() 
    strIO.write(render_template('hello.html', name='World')) 
    strIO.seek(0) 
    return send_file(strIO, 
        attachment_filename="testing.txt", 
        as_attachment=True) 

を。

+0

ありがとう!私は '' 'render_template'''が文字列のHTMLページ全体を返すとは思っていませんでしたが、APIドキュメントが戻り値について何も言わないので、私はそれを逃した。これは問題を解決します。 –

関連する問題