使用环境同上篇django文章。


在django中上传文件,添加上传页面:

安装pillow:

]#cdpy3/django-test1/test5]#pipinstallpillow==3.4.1

如果此前安装过别的版本,也无所谓,执行此命令后会直接覆盖。


在settings.py文件中配置添加media目录:

]#vimtest5/settings.py...MEDIA_ROOT=os.path.join(BASE_DIR,'static/upload/')

创建上传目录:

]#mkdirstatic/upload

创建上传的view视图函数:

]#vimbookshop/views.pyimportosfromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponsefromdjango.confimportsettingsdefindex(request):returnrender(request,'bookshop/index.html')defmyExp(request):a1=int('abc')returnHttpResponse('hello_world')defuploadPhoto(request):returnrender(request,'bookshop/uploadphoto.html')defuploadHandle(request):pic1=request.FILES['photo1']picName=os.path.join(settings.MEDIA_ROOT,pic1.name)#returnHttpResponse(picName)withopen(picName,'wb')asf:forpinpic1.chunks():f.write(p)returnHttpResponse('<imgsrc="/static/upload/%s"/>'%pic1.name)

创建上传的html模板文件:

]#vimtemplates/bookshop/uploadphoto.html<!DOCTYPEhtml><html><head><title>Title</title></head><body><formaction="/uploadHandle"method="post"enctype="multipart/form-data">{%csrf_token%}<inputtype="file"name="photo1"><br><inputtype="submit"value="上传"></form></body></html>

添加url:

]#vimbookshop/urls.pyfromdjango.conf.urlsimporturlfrom.importviewsurlpatterns=[url(r'^$',views.index),url(r'^myexp$',views.myExp),url(r'^uploadphoto$',views.uploadPhoto),url(r'^uploadHandle$',views.uploadHandle),]

运行django服务器:

]#pythonmanage.pyrunserver192.168.255.70:8000

说明:要上传的图片为美女图


浏览器访问:http://192.168.255.70:8000/uploadphoto

选择上传的图片后,页面显示出该图片:


显示图片效果: