2016-07-10 12 views
0

私はpython/Flaskを使用してファイルを読み込み、ボタンをクリックして表示しようとしています。ファイルを表示するには、このようなリターン機能が正常に動作します:フラスコhtml入力形式

return redirect(url_for('uploaded_file',filename=filename)) 

しかし、私はクリックするだけでファイルを表示するためにHTMLで実装しようとしています。このような何か:

<form><input action="redirect(url_for etc. ??)" type=submit value=viewFile> </form> 

は何actionの正しい構文でしょうか?
ありがとうございます。

答えて

1

アクション属性は<form>で、<input>ではなくなります。アクションの値は、ファイルを受け入れるルートのURLにする必要があります。

Jinja2の:

<form action="{{url_for('upload')}}" enctype="multipart/form-data"> 
    <input type="file" name="view_file"> 
    <input type="submit" value="Upload"> 
</form> 

のPython:あなたはJinja2の、このような何か使用していると仮定すると、

@app.route('/upload', methods=['POST']) 
def upload(): 
    # Handle upload and save to disk here.. 
    return redirect(url_for('uploaded_file', filename=filename)) 

@app.route('/uploads/<filename>') 
def uploaded_file(filename): 
    return send_from_directory(app.config['UPLOAD_FOLDER'], filename) 

http://flask.pocoo.org/docs/0.11/patterns/fileuploads/参照を(それはあなたがすでにその例から作業しているように見えます。)

+0

私は、ユーザーがファイルを確認することができ、ページが読み込まれていしようとしています。 のpython: ... リターンrender_template( 'view.html') HTML(view.html):<!DOCTYPE HTML> <フォームアクション= "{{(リダイレクト(なurl_forこのような'view file'を押すとエラーが表示されます。 'file'をクリックすると、エラーが発生します。 、 jinja2.exceptions.UndefinedError UndefinedError: 'リダイレクト'は定義されていません ファイルのアドレスをリダイレクトするように書かれていますか? ご協力いただきありがとうございます。 – user2786019

0

このコードは、filenameをHTMLフォーム入力に渡すために働いていました。

のpython:

... 
return render_template('view.html', cat = filename) 

HTML(view.html):

<!doctype html> 
<form action="{{url_for('uploaded_file', filename=cat)}}" enctype="multipart/form-data"> 
<input type=submit value='view file'> 
</form>