前端Vue3访问后端django的图片
时间: 2023-10-07 13:08:29 浏览: 207
vue+django进行前后端分离开发
对于前端Vue3访问后端Django的图片,你可以考虑以下两种方式:
1. 使用Django提供的静态文件服务
在Django项目中,可以通过配置静态文件的路径和URL来提供静态文件服务。例如,在`settings.py`文件中添加以下配置:
```
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
```
其中,`STATIC_URL`是静态文件的URL前缀,`STATICFILES_DIRS`是静态文件的路径。
在Vue3中,可以通过以下方式访问静态文件:
```
<img :src="'/static/images/test.jpg'" alt="test">
```
其中,`/static`是Django中配置的静态文件URL前缀,`/images/test.jpg`是图片相对于静态文件路径的路径。
2. 使用Django提供的API接口
如果你想在Vue3中通过API接口来获取图片,可以在Django中编写API接口,返回图片的二进制数据。例如,在Django项目的`views.py`中添加以下代码:
```
from django.http import HttpResponse
import os
def get_image(request, filename):
image_path = os.path.join(settings.BASE_DIR, 'media', filename)
with open(image_path, 'rb') as f:
image_data = f.read()
return HttpResponse(image_data, content_type='image/jpeg')
```
其中,`filename`是图片的文件名,在Vue3中通过API接口访问图片时需要提供。
在Vue3中,可以通过以下方式访问API接口:
```
<img :src="'/api/image/' + filename" alt="test">
```
其中,`/api/image/`是Django中配置的API接口URL前缀,`filename`是图片的文件名。在Vue3中,可以通过`props`或`data`来传递`filename`。
阅读全文