• Django实现文件在本地的存储和读取


    需求介绍:将图片存入本地的电脑文件夹中,将图片的路径保存到数据库,然后通过数据库的路径读取文件;

    1、文件的存入:

    前端文件:

    <form class="form-horizontal" method="post" action="/commodityAdd/" enctype="multipart/form-data">   # enctype="multipart/form-data"  必须参数
        <div class="form-group">
            <label for="inputImage" class="col-sm-2 control-label">标志图片</label>
            <div class="col-sm-10">
                <input type="file" name="commodityImage" id="inputImage">
            </div>
        </div>
        <div class="form-group">    
            <button type="submit" class="btn btn-danger">提 交</button>
        </div>
    </form>
    

    视图函数:

    def storage_view(request):
        """
        存储数据
        :param request:
        :return:
        """
        if request.method == "POST":
            img = request.FILES.get("img")
            url = "/img/"
            old_name = img.name
            suffix = old_name.rsplit(".")[1]
            img_name = int(time.time())
            dir = os.path.join(os.path.join(settings.BASE_DIR, 'img'),str(img_name)+'.'+suffix)
            destination = open(dir,'wb+')
            for chunk in img.chunks():
                destination.write(chunk)
            destination.close()
            models.datainfo.objects.create(
                data_photo = url + str(img_name)+'.'+suffix,
                add_time = timezone.now()
            )
            return JsonResponse({"status":True})
        else:
            return JsonResponse({"status":False,"error":"请求错误"})
    

    上边是将前端发送过来的图片保存到本地指定文件夹,然后将文件夹和文件名作为相对路径存入数据库,方便访问时快速的获取;

    2、文件的获取:

    首先,要在settings.py中设置,media是保存图片的文件夹:

    IMG_PATH = "/img/"
    MEDIA_ROOT = os.path.join(BASE_DIR,'img')
    

    url.py中:

    from django.conf.urls.static import static
    from . import settings
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^api/', include('web.urls')),
    ]
    urlpatterns += static('/img/', document_root=settings.MEDIA_ROOT)
    

    要加载的图片,放到img文件夹中,在html文件中:

    <img src="/img/7.jpg" alt="图片无法显示"/>
    
  • 相关阅读:
    循环
    rugarch包与R语言中的garch族模型
    Logistic回归
    机器学习缺失值处理方法汇总
    pandas库介绍之DataFrame基本操作
    python中常用的九种预处理方法
    谁动了我的特征?——sklearn特征转换行为全记录
    使用sklearn优雅地进行数据挖掘
    使用sklearn做单机特征工程
    彻底解决matplotlib中文乱码问题
  • 原文地址:https://www.cnblogs.com/zhufanyu/p/12520564.html
Copyright © 2020-2023  润新知