1

私は python/flask で投票アプリケーションを作成しています。ユーザーが mysql ダンプをダウンロードできるボタンを作成する必要があります。

ダンプを実行するmysqlコードはこれです - select * into outfile "votes.csv" fields terminated by ',' from vote;

2つの質問があります

  • ダウンロードできるように、このダンプを保存するパスは何にする必要がありますか?
  • 私はsqlalchemyを使用しています。このコードをフラスコ アプリケーションから実行し、生成されたファイルへのリンクを提供するにはどうすればよいですか?

どうもありがとう!

ストリーミング用?

 @app.route('/foo')
 def foo():
     def generate():
         yield 'first part'
         yield 'second part'
     return Response(generate(), direct_passthrough=True)
4

1 に答える 1

2

さて、問題を見てみましょう。

投票テーブルから、フィールドが「,」で終了する csv ファイルに投票をダンプしますか?

おそらく、sqlalchemy テーブルを直接反復することができます:) このようなもの。

",".join(vote for vote in Vote) 

明らかに少し違うかもしれませんが、それでも要点は変わりません。mysql で csv をダンプするのではなく、Python で csv を作成します。

保存場所については、ハードドライブに書き込むか、メモリに保存するかの 2 つの選択肢があります (制約によって異なります)。

ハードドライブに書き込まれた場合/staticは、アプリケーションのディレクトリに保存されていることを確認してください。メモリ内にある場合は、リクエストに直接ストリーミングできます。

もう 1 つの方法は、ファイルをその場で生成して、リクエスタに書き出すことです。

于 2012-11-03T14:59:59.890 に答える