Não estou conseguindo fazer funcionar a função editar , já conferi o código que fiz. Segue minhas funções:
@app.route('/editar/<int:id>')
def editar(id):
if 'usuario_logado' not in session or session ['usuario_logado'] == None:
return redirect(url_for('login', proxima = url_for('editar')))
jogo = jogo_dao.busca_por_id(id)
nome_imagem = recupera_imagem(id)
flash(nome_imagem)
return render_template('editar.html', titulo='Editando Jogo', jogo= jogo, capa_jogo= nome_imagem)
def recupera_imagem(id):
for nome_arquivo in os.listdir(app.config['UPLOAD_PATH']):
if f'capa{id}' in nome_arquivo:
return nome_arquivo
def deleta_arquivo(id):
arquivo = recupera_imagem(id)
flash(arquivo)
caminho = os.path.join(app.config['UPLOAD_PATH'], arquivo)
flash(caminho)
os.remove(caminho)
@app.route('/atualizar', methods=['POST', ])
def atualizar():
nome = request.form['nome']
categoria = request.form['categoria']
console = request.form['console']
jogo = Jogo(nome, categoria, console, id = request.form['id'])
arquivo = request.files['arquivo']
upload_path = app.config['UPLOAD_PATH']
timestamp = time.time()
deleta_arquivo(jogo.id)
arquivo.save(f'{upload_path}/capa{jogo.id}-{timestamp}.jpg')
jogo_dao.salvar(jogo)
return redirect(url_for('index'))
Minha estrutura de pastas está correta quanto ao indicado e consigo salvar tranquilamente ao adicionar um novo.
Já o erro por sua vez retorna para a função deletar arquivo.
Erro : TypeError: join() argument must be str or bytes, not 'NoneType'