Не получается загрузить изображение с помощью 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.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Написал шейдер который должен делать эффект тумана в дали, но он не работаетВ чём может быть причина?
Мне необходимо подсчитать ссылки на объект, и если осталась только 1, то удалить егоДело в том, что все объекты хранятся в словаре: