django高级(三)上传图片

  • 当django在处理文件上传的时候,文件数据被保存在request.FILES中,如果是文本数据,可以通过request.POST来存储所有属性。
  • FILES中的每个键为中的name
  • 注意:FILES只有在请求的方法为POST 且提交的带有enctype=“multipart/form-data” 的情况下才会包含数据。否则,FILES 将为一个空的类似于字典的对象。

创建一个模板

<form action="/uploadHandle" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <input type="file" name="pic1">
    <br>
    <input type="submit" name="上传">
</form>

定义视图函数

def uploadPic(request):
    return render(request,'booktest/updatePic.html')

定义一个视图的处理函数,上传图片

def uploadHandle(request):
    pic1=request.FILES['pic1']
    picName=os.path.join(settings.MEDIA_ROOT,pic1.name)
    with open(picName,'w') as pic:
        for c in pic1.chunks():
            pic.write(c)
    return HttpResponse(''%pic1.name)

定义url

from django.conf.urls import url
import views

urlpatterns=[
    url(r'^$',views.index,name='index'),
    url(r'^myExp',views.myExp,name='myExp'),
    url(r'^uploadPic$',views.uploadPic),
    url(r'^uploadHandle$',views.uploadHandle)
]

你可能感兴趣的:(前端,django)