1
resposta

Nenhuma imagem aparece

Consigo fazer com que a imagem seja salva na pasta uploads, porém nem as imagens salvas e nem a imagem "capa_padrão" aparecem (tanto para inserir um novo jogo como também para editar). Onde estou errando? Agradeço a atenção desde já!

"novo.html":

          <figure>
            <img src="{{ url_for('imagem', nome_arquivo='capa_padrao.jpg') }}">
            <figcaption>
              <label>
                <input type="file" name="arquivo" accept=".jpg">
             </label>
           </figcaption>
          </figure>

"editar.html":

      <form action="{{ url_for('atualizar') }}" method="post">
          <figure>
          <img src="{{url_for('imagem', nome_arquivo=capa_jogo.jpg)}}">
          <figcaption>
            <label>
              <input type="file" name="arquivo" accept=".jpg">
            </label>
          </figcaption>
        </figure>

"jogoteca":

@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',id=id)))
    jogo = jogo_dao.buscar_por_id(id)
    capa_jogo = f'capa{jogo.id}.jpg'
    return render_template('editar.html', titulo='Editando jogo', jogo=jogo,capa_jogo=capa_jogo)

@app.route('/uploads/<nome_arquivo>')
def imagem(nome_arquivo):
    return send_from_directory('uploads', nome_arquivo)
1 resposta

Oi João, como vai? Espero que esteja bem ^-^

Peço perdão pela demora em obter um retorno.

Testei o código que você apresentou e quanto a inserção de um novo jogo a capa padrão apareceu como esperado.

Porém, ao editar, a imagem não estava sendo apresentada. Isso estava ocorrendo por causa do seguinte trecho no arquivo editar.html:

 <img src="{{url_for('imagem', nome_arquivo=capa_jogo.jpg)}}">

No parâmetro nome_arquivo não há a necessidade do final .jpg, isso porque a variável capa_jogo já é passada com o tipo da imagem, ou seja, ela já vem com o .jgp. O código modificado fica da seguinte forma:

  <img src="{{url_for('imagem', nome_arquivo=capa_jogo)}}">

Quanto a capa_padrao não aparecer, observe se ela está salva na pasta uploads e se o nome é exatamente esse: capa_padrao. Caso a mesma ainda não apareça, peço por gentileza que faça o upload do projeto completo no drive e deixe o link na resposta para que eu possa verificar com maior assertividade o que está ocorrendo.

Fico no seu aguardo.

Abraços!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software