Я не могу удалить изображение, но вставить в работу нормально с той же директории, используя Flask - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь удалить изображение из папки, но оно не работает, выдавая ошибку: FileNotFoundError: [WinError 2] Системе не удается найти указанный файл: 'static \ images \ 2018194259_a476v_engelhart-tilburg_inside-track_text_font_product.jpg'

Но вставка работает очень хорошо с тем же каталогом загрузки

UPLOAD_FOLDER = 'static\images'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

код вставки:

def insert():
cursor = db.cursor()

if request.method == "POST":
    flash("Data Inserted Successfully")
    name = request.form['name']
    email = request.form['email']
    phone = request.form['phone']

    image = request.files['imgfile'] #myfile is name of input tag

    if image and allowed_file(image.filename):
        fileTemp = secure_filename(image.filename)
        time_p = time.strftime('%Y%H%M%S')

        filename = time_p+"_"+fileTemp

        image.save(os.path.join(app.config['UPLOAD_FOLDER'],filename))

        path = filename
    empty=''
    if path is empty:
        return "You have not uploading a image"
    else:
        cursor.execute("INSERT INTO student_flask (name, email, phone)VALUES (%s, %s, %s)", (name, path, phone))
        db.commit()
        cursor.close()

    return redirect(url_for('Index'))

Удалить код ИЗОБРАЖЕНИЯ:

@app.route('/delete/<string:id_data>', methods = ['GET'])
def delete(id_data):

   imgname = image_name(id_data)
   mna = imgname[0]
   os.remove(os.path.join(app.config['UPLOAD_FOLDER'], mna))
   return redirect(url_for('Index'))

1 Ответ

0 голосов
/ 02 октября 2018

Запросите базу данных, чтобы сначала получить имя изображения.Если это сам по себе объект .ie Image.name или атрибут объекта .ie Foo.image.В вашей функции удаления вы должны запустить commit , чтобы изменения вступили в силу.Также id должно быть int:

@app.route('/delete/<int:id>', methods=['GET', 'POST'])
def delete(id=None):
...