2016-12-24 8 views
0

一般的にフラスコやウェブアプリケーションの新機能です。フラスコ付きのユーザー参照ファイル

-directory1 
    -image1 
-directory2 
    -subdirectory 
    -image2 
-directory3 
    -flask_app 
    -app.py 
    -static 

アプリの目的は、動的、静的、各ユーザのために変更されることはない他のディレクトリ内のコンテンツへのアクセスを提供することである:私は別の場所に配置することができる画像を有します。コンテンツを移動または変更することはできません。

ユーザーの入力値に基づいてアプリを移動または変更せずに、他のディレクトリの画像を表示するにはどうすればよいですか?

私はこれまで、次のしているが、画像リンクが壊れている:

<!DOCTYPE html> 
<html lang="en"> 

<body> 
<form method="POST" action="."> 
    <input id="post_form_id" name="image_num" value="" /> 
    <input type="submit"> 
</form> 

{% if result %} 
    {{ url_for('download_file', filename= result) }} 
    <img src={{ url_for('download_file', filename= result) }}> 
{% endif %} 

</body> 
</html> 

答えて

1
app/ 
    app.py 
    ... 
uploads/ 
     dir1/ 
      img1.png 
     ... 

... 
app.config['UPLOAD_FOLDER'] = 'path/to/uploads/dir1' 

@app.route('/file/<path:filename>') 
def img_file(filename): 
    filename = filename + '.png' 
    return send_from_directory(app.config['UPLOAD_FOLDER'], filename) 

@app.route('/', methods=['GET', 'POST']) 
def index(): 
    filename = None 
    if request.method == 'POST': 
     filename = request.form['img_num'] 
    return render_template('form.html', filename=filename) 

<form method="post" action="" > 
    <input type="text" id="form_id" name="img_num"> 
    <input type="submit" value="submit"> 
</form> 
    {% if filename %} 
    <img src=" {{ url_for('img_file', filename=filename) }}"> 
    {% endif %} 

from flask import Flask, render_template, request, send_from_directory 

current_filepath = /directory2/image{}.png 

app = Flask(__name__, static_url_path='') 

@app.route('/js/<path:filename>') 
def download_file(filename): 
    return send_from_directory('js', filename) 


@app.route('/', methods=['GET','POST']) 
def print_form(): 
    if request.method == 'POST': 
     test = current_filepath.format(request.form['image_num']) 
     return render_template('form.html', result=test) 

    if request.method == 'GET': 
     return render_template('form.html') 


if __name__ == '__main__': 
    app.run(debug=True) 

form.htmlファイル付き

関連する問題