Django后端图片上传到前端页面并展示

这里用到的是base64的形式展示

views视图代码:

import os
import base64

from rest_framework.views import APIView
from rest_framework.response import Response


class ONE(APIView):
    def get(self, request):
        dir_name = request.GET.get('dir_name')
        request.img_list = []
        find(dir_name, request)
        for i in request.img_list:
            print(i['file_name'])
        return Response({'file_data': request.img_list})


def find(dir_name, request):
    path = f'C:\\Users\\17513\\Desktop\\jwd\\map\\{dir_name}'
    dir_list = os.listdir(path)
    print(dir_list)
    for i in dir_list:
        if os.path.isdir(path + '//' + str(i)):
            path2 = dir_name + '//' + i
            find(path2, request)
        else:
            pro = open(path + '//' + str(i), 'rb')
            data = pro.read()
            request.img_list.append({'file_name': i, 'file_base64': base64.b64encode(data)})
            pro.close()

steeings配置文件:

# 访问静态文件的url地址前缀
STATIC_URL = '/map/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'map'), )
STATIC_ROOT = ''

urls代码:

from django.contrib import admin
from django.urls import path, re_path
from django.conf.urls.static import static
from test_django import settings
from app01 import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('show/', views.ONE.as_view()),
]

map图片文件夹

postman测试效果:

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue3中,可以通过以下步骤将图片传到Django后端服务器: 1. 在Vue组件中添加一个文件选择器,让用户选择要上传的图片: ``` <template> <div> <input type="file" ref="fileInput" @change="uploadImage"> </div> </template> ``` 2. 在Vue组件中添加一个上传图片的方法,使用axios发送POST请求将图片传到后端服务器: ``` <script> import axios from 'axios'; export default { methods: { uploadImage() { const formData = new FormData(); formData.append('image', this.$refs.fileInput.files[0]); axios.post('/api/upload-image/', formData) .then(response => { console.log('Image uploaded successfully'); }) .catch(error => { console.log('Error uploading image:', error); }); } } } </script> ``` 3. 在Django后端服务器中添加一个接收图片上传的API视图: ``` from django.http import JsonResponse def upload_image(request): if request.method == 'POST': image = request.FILES.get('image') # Do something with the uploaded image return JsonResponse({'status': 'success'}) else: return JsonResponse({'status': 'error', 'message': 'Only POST requests are allowed'}) ``` 4. 在Django后端服务器中添加一个URL路由,将上传图片的API视图和URL地址绑定: ``` from django.urls import path from .views import upload_image urlpatterns = [ path('api/upload-image/', upload_image, name='upload-image'), ] ``` 这样,当用户选择要上传的图片并点击上传按钮时,Vue组件会通过axios发送一个POST请求到Django后端服务器的上传图片API视图,后端服务器接收到请求后会将图片保存到服务器上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值