django 将plt的图传到前端
时间: 2023-11-29 07:07:00 浏览: 181
Django实现前台上传并显示图片功能
将 matplotlib 绘制的图像传递到前端可以使用 Django 的 HttpResponse 对象。具体步骤如下:
1. 在 Django 的视图函数中,使用 matplotlib 绘制出图像,并将图像保存到内存中,例如:
```python
import io
import matplotlib.pyplot as plt
def plot(request):
# 绘制图像
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
plt.plot(x, y)
plt.title("My Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
# 保存图像到内存中
buffer = io.BytesIO()
plt.savefig(buffer, format='png')
buffer.seek(0)
# 返回 HttpResponse 对象
return HttpResponse(buffer.getvalue(), content_type='image/png')
```
2. 在前端页面中使用 img 标签来显示图像,例如:
```html
<!DOCTYPE html>
<html>
<head>
<title>My Plot</title>
</head>
<body>
<img src="{% url 'plot' %}">
</body>
</html>
```
其中,`{% url 'plot' %}` 会根据 `urls.py` 中的路由配置来生成图像的 URL。比如,如果在 `urls.py` 中配置了如下路由:
```python
from django.urls import path
from . import views
urlpatterns = [
path('plot/', views.plot, name='plot'),
]
```
则生成的图像 URL 就是 `/plot/`。
阅读全文