介绍
小编给大家分享一下在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中使用图片的方法