2017-05-26 48 views
1

私が達成しようとしているのは、サーバーからファイルを削除することです(具体的には、 '静的'フォルダー)。Flask:サーバーとデータベースからファイルを削除する

マイ神社テンプレート:

<table> 
    <tr> 
    {% for file in files_.items %} 
     <td data-title="title" style="text-align: center">{{ file.title }}</td> 
     <td data-title="download"><a href="{{ url_for('static', filename=file.file) }}">Download</a></td> 
     {% if current_user.username == "admin" %} 
     <td data-title="delete" style="text-align: center"><a href="{{ delete }}">Delete</a></td> 
     {% endif %} 
     </tr> 
    {% endfor %} 
</table> 

と私の機能:をクリックした後、私は、データベースからレコードを削除したいHTMLでを削除するには、私が何をしようとしている

@app.route('/upload/<path:filename>/', methods=['GET', 'POST']) 
@login_required 
def delete(filename): 
    item = db.session.query(File).get(filename) 
    os.remove(os.path.join(app.static_folder, item.filename)) 
    db.session.query(File).filter_by(file=filename).delete() 
    db.session.commit() 
    return render_template('dashboard.html',delete=delete) 

ですファイルをサーバーから取得します。今では、私はこの関数を呼び出すアプローチが正しいのかどうかはわかりません。プリミティブログシステムとしてプリントを使用しようとしていて、端末に何もなかったので、関数が呼び出されなかったと思います。また、私の推測では、削除テンプレート、コール機能をレンダリングする場合(」パイソンを伝えアイブ氏は

{{ delete(filename=file.file) }} 

を試みたが、それはテンプレートに

UndefinedError: 'delete' is undefined

答えて

2

{{ delete(filename=file.file) }}を返されたので、私は、それまでのファイル名を渡す必要があるだろうということです)」。あなたがしたいことは、クリックするとエンドポイントを削除するリンクを生成することです。 だから、{{ url_for('delete', filename=...) }}

関連する問題