2014-10-30 4 views
0

사용하여 서버에서 파일을 삭제하려면? 문제는 내가 현재 항목의 내용 (설명, 가격 등) 만 삭제했지만 폴더에 업로드 된 실제 파일은 물론 제거되지 않는다는 것입니다. 이것은 문제를 만든다! 여기 어떻게 플라스크

내 삭제 기능입니다 :

# Delete Items: 
@app.route('/delete_item/<int:item_id>/', methods=['GET', 'POST']) 
@login_required 
def delete_item(item_id): 
    new_id = item_id 
    os.remove(os.path.join(app.config['UPLOADED_ITEMS_DEST'], filename)) 
    db.session.query(Item).filter_by(item_id=new_id).delete() 
    db.session.commit() 

    return redirect(url_for('admin_items')) 
+0

그리고 os.remove (os.path.join (의 app.config를 [ 'UPLOADED_ITEMS_DEST', 파일 이름)) 작동하지 않는 이유는 무엇입니까? – Beri

+0

삭제 기능을 삽입했습니다. 그러나 나는 sqlalchemy의 expirienced 사용자가 아니므로 데이터베이스에서이 함수에 대한 "파일 이름"의 값을 얻는 방법을 모르겠습니다! :(그것이 발견되지 않는 한 - 함수가 작동하지 않습니다 –

답변

3
@app.route('/delete_item/<int:item_id>/', methods=['GET', 'POST']) 
@login_required 
def delete_item(item_id): 
    new_id = item_id 
    item = self.session.query(Item).get(item_id) 
    os.remove(os.path.join(app.config['UPLOADED_ITEMS_DEST'], item.filename)) 
    self.session.delete(item) 
    db.session.commit() 
    return redirect(url_for('admin_items')) 

를 명령을 실행 할 수 있습니다 적절한 오류 포착을 구현해야합니다. 한 번 봐 걸릴 :

https://github.com/dpgaspar/Flask-AppBuilder/blob/master/flask_appbuilder/models/sqla/interface.py#L366

+0

고맙습니다! 도움이되었습니다.하지만 자체 전역 변수가 정의되지 않았다고 오류가 발생하여 db로 자체 전역 변수를 변경했습니다. –

-1

당신이

os.system을에게 파이썬 ('RM은 THE_FILE_TO_DELETE') 물론