一、目标
学习在Django下做个文件上传的页面、学习创建文件上传目录及设定
二、试验平台
windows7 , python3.7,Django2.1.5,
三、概述
本例较为简单,仅介绍主要代码,
四、在项目根目录创建静态文件夹static,及上传文件的文件夹/static/upload
1.创建文件夹/static在项目根目录
2.在static下创建上传文件夹upload
3.在settings.py中设定两个文件夹信息
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
] MEDIA_ROOT = os.path.join(BASE_DIR, r'static\upload')
五、创建上传文件的html页面
<!DOCTYPE html><html><head><meta charset="UTF-8"> <title>kahn django上传文件</title></head><body><form method="post" action="/uploadFiles/" enctype="multipart/form-data"> {% csrf_token %} <input type="file" name="xFile"> <input type="submit" value="上传"></form></body></html>
六、编写视图文件
from django.shortcuts import render, HttpResponseimport osfrom django.conf import settings # #文件上传时用到settings.py中的upload文件夹
# #文件上传def uploadFiles(request): if request.method == "GET": return render(request, 'blog/uploadFiles.html') else: # #接受前端传来的文件 xFile = request.FILES["xFile"] # #将传来的文件保存至/settings.py中自定义设定的MDEIA_ROOT目录upload中,并且文件名用传来的文件名命名 filePath = os.path.join(settings.MEDIA_ROOT, xFile.name) with open(filePath, 'wb') as fp: for xFileStream in xFile.chunks(): fp.write(xFileStream) return HttpResponse("上传成功")
七、编写相应的路由文件
path('uploadFiles/', views.uploadFiles),