在Django中使用图片的方法

  介绍

小编给大家分享一下在Django中使用图片的方法,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

1。首先是html页面表的形式单的三大属性,行动是提交到哪,方法是提交方式,enctype只要有图片上传就要加这个属性

,,Django框架自带csrf_token,所以需要在前端页面也生成csrf_token字符串,来验证真实客户

& lt; form  action=皃ic_upload/?方法=癙OST", enctype=岸嗖糠?form-data"比;   ,,,,,,,{%,csrf_token  %}   ,,,,,,,& lt; input 类型=癴ile", name=癴ile"比;   ,,,,,,,& lt; input 类型=皊ubmit", value=https://www.yisu.com/zixun/碧峤弧?   

2。如下是上传图片的接口:

def  pic_upload(请求):   ,,,if  request.method ==,“GET":   ,,,,,,,return 渲染(请求,“helloapp/pic_upload.html",当地人())   ,,,if  request.method ==,“POST":   ,,,,,,,error =,““   ,,,,,,,fp =, request.FILES.get (“file")   ,,,,,,,#,fp 获取到的上传文件对象   ,,,,,,,if 外交政策:   ,,,,,,,,,,,path =, os.path.join (STATICFILES_DIRS[0], & # 39;图像/& # 39;,+,fp.name),,, #,上传文件本地保存路径,,图像是静态文件   ,,,,,,,,,,,夹下专门存放图片的文件夹   ,,,,,,,,,,,#,fp.name  #文件名   ,,,,,,,,,,,#油品收率=,fp.chunks(), #,流式获取文件内容   ,,,,,,,,,,,#,fp.read(), #,直接读取文件内容   ,,,,,,,,,,,if  fp.multiple_chunks():,,,, #,判断上传文件大于2.5 mb的大文件   ,,,,,,,,,,,,,,,#,为真   ,,,,,,,,,,,,,,,file_yield =, fp.chunks(),,,, #,迭代写入文件   ,,,,,,,,,,,,,,,with 开放(路径,& # 39;wb # 39;), as  f:   ,,,,,,,,,,,,,,,,,,,for  buf 拷贝file_yield:,,,,, #,为情况执行无误才执行,   ,,,,,,,,,,,,,,,,,,,,,,,f.write (buf)   ,,,,,,,,,,,,,,,,,,,其他的:   ,,,,,,,,,,,,,,,,,,,,,,,印刷(“大文件上传完毕“)   ,,,,,,,,,,,其他的:   ,,,,,,,,,,,,,,,with 开放(路径,& # 39;wb # 39;), as  f:   ,,,,,,,,,,,,,,,,,,,f.write (fp.read ())   ,,,,,,,,,,,,,,,印刷(“小文件上传完毕“)   ,,,,,,,,,,,models.ImgPath.objects.create (path=(& # 39;图像/& # 39;,+,fp.name)),,,,, #,,图像是静态文件夹下专门存放图片的文件夹   ,,,,,,,其他的:   ,,,,,,,,,,,error =,“文件上传为空”;   ,,,,,,,,,,,return 渲染(请求,“helloapp/pic_upload.html",当地人())   ,,,,,,,return 重定向(“helloapp/pic_index/?, #,重定向到首页

3。做个图片展示的页面,对图片展示对应的接口传过来的参数加以判断

,,,{%,for  img 拷贝imgs  %}   ,,,,,,,& lt; img 静态img src=https://www.yisu.com/zixun/眥%。路径%}">   {%空%}   

您没有上传任何图片

  {% endfor %}

4。图片展示的接口:

def  pic_index(请求):   ,,,imgs =, models.ImgPath.objects.all ()   null

在Django中使用图片的方法