Не загружается img в Flask

93
15 мая 2021, 04:20

Не получается загрузить изображение с помощью Flask. В лучшем случае - выдаёт html с "битой картинкой". При чём сама пикча создаётся в папке media и спокойно открывается в редакторе изображений.

Если задать путь к пикче явно в теге , то она отображается, а если как я задаю:

img.html

<img src="{{ url }}">

то получаю "битую пикчу" и что-то такое в консоли:

 * Serving Flask app "webapp.py"                                                                                                                     
 * Environment: production                                                                                                                           
   WARNING: This is a development server. Do not use it in a production deployment.                                                                  
   Use a production WSGI server instead.                                                                                                             
 * Debug mode: off                                                                                                                                   
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)                                                                                          
127.0.0.1 - - [05/Aug/2019 20:35:27] "?[37mGET / HTTP/1.1?[0m" 200 -                                                                                 
127.0.0.1 - - [05/Aug/2019 20:35:37] "?[37mPOST / HTTP/1.1?[0m" 200 -                                                                                
127.0.0.1 - - [05/Aug/2019 20:35:37] "?[33mGET /media/P01089.png HTTP/1.1?[0m" 404 - 

P.s.: если нужны сами скрипты:

webapp.py - основной файл

from flask import Flask, render_template
from forms import AAForm
from create_plot import ploter
import os
app = Flask(__name__)
SECRET_KEY = os.urandom(32)
app.config['SECRET_KEY'] = SECRET_KEY
@app.route('/', methods=['GET', 'POST']) 
def index():
    form = AAForm()
    if form.validate_on_submit():
        filename = ploter(input_id=form.uniprot_ids.data, the_dye=['K', 'R', 'H'])
        return render_template('img.html', url=f'media/{filename}.png')
    return render_template('index.html', form=form)
if __name__ == '__main__':
        app.run()

create_plot.py

#...
def two_dim_electrophoresis(proteome_data, input_id):
    #...
    plt.savefig(f'templates/media/{input_id}.png')
def ploter(input_id, the_dye, session=session):
    #...
    two_dim_electrophoresis(data, input_id)
    return input_id

P.p.s.: я уже попробовал менять местоположение директории media и переписывать пути... В случае не нахождения изображения сервер выдавал ошибку, а в случае совпадения - битая пикча. Хотя мб, косяк может быть и из-за неверных путей, я не силён в задании относительных путей в проектах flask.

READ ALSO
Не работает создание объекта из меню

Не работает создание объекта из меню

Пробую создать объект из меню:

91
Не работает шейдер

Не работает шейдер

Написал шейдер который должен делать эффект тумана в дали, но он не работаетВ чём может быть причина?

72
Как сосчитать ссылки на объект c#?

Как сосчитать ссылки на объект c#?

Мне необходимо подсчитать ссылки на объект, и если осталась только 1, то удалить егоДело в том, что все объекты хранятся в словаре:

171