Это странно.У меня есть представление, которое создает два png-файла в статическом каталоге для моего приложения django, а затем предоставляет шаблон, который показывает их.
Одно из изображений загружается правильно;другой никогда не загружается (но браузер ждет его).Кажется случайным, является ли это первым или вторым изображением.
Вещи, которые я проверил: - Оба изображения существуют в статическом каталоге и выглядят хорошо из браузера изображений.- URL к изображениям выглядит правильно.
Вот представление, которое использует matplotlib для создания двух изображений в каталоге static /:
nii_image_list = []
for desired_file, desired_tag in desired_image_list:
if not os.path.isfile(desired_file):
continue
desired_name = scan_name + "_" + desired_tag
nii_image_list.append((save_nii_preview_to_static_file(desired_file, desired_name), desired_tag))
plt.clf()The
#
print(nii_image_list)
template = loader.get_template('server/scan_deep.html')
context = {
'scan': scan,
'nii_image_list': nii_image_list
}
return HttpResponse(template.render(context, request))
def show_nii(filename):
nii = nib.load(filename)
dimensions = nii.header.get_data_shape()
data = nii.get_dTheata()
slice_0 = data[round(dimensions[0] * 0.5), :, :]
slice_1 = data[:, round(dimensions[1] * 0.5), :]
slice_2 = data[:, :, round(dimensions[2] * 0.5)]
show_slices([slice_0, slice_1, slice_2])
def save_nii_preview_to_static_file(nii_filename, name):
filename = os.getcwd() + "/static/" + name.replace(' ', '') + ".png"
html_static_filename = name.replace(' ', '') + ".png"
show_nii(nii_filename)
plt.savefig(filename)
return html_static_filename
def show_slices(slices):
fig, axes = plt.subplots(1, len(slices))
for i, slice in enumerate(slices):
axes[i].imshow(slice.T, cmap="gray", origin="lower")
Файл шаблона:
{% load staticfiles %}
The
{% block content %}
{% for image_src, image_name in nii_image_list %}
<h2>{{ image_name }}</h2>
<img src="{% static image_src %}">
{% endfor %}
<br>
{% endblock %}
Вывод:
<h2>T1</h2>
<img src="/static/filename1.png">
<h2>V1 Angle</h2>
<img src="/static/filename2.png">
Загрузка изображений напрямую (через URL) приводит к тому же поведению: одно загружается нормально, другое никогда не возвращается.
По-моему, яскажи может я неправильно закрываю pyplot или что-то в этом роде?