用Pycharm创建一个django项目。目录如下:

1<!DOCTYPEhtml>
2<htmllang="en">
3<head>
4<metacharset="UTF-8">
5<title>upload</title>
6</head>
7<body>
8{#上传文件的form表单必须要加上enctype="multipart/form-data"#}
9<formaction="/upload/"method="post"enctype="multipart/form-data">
10<inputtype="file"name="upload_files">
11<inputtype="submit"value="提交">
12</form>
13</body>
14</html>
uploadFiles.html
1fromdjango.shortcutsimportrender,HttpResponse
2
3#Createyourviewshere.
4
5#CBV方式(classbaseviews)
6fromdjango.viewsimportView
7classUpload(View):
8defpost(self,request):
9'''
10保存上传文件前,数据需要存放在某个位置。默认当上传文件小于2.5M时,django会将上传文件的全部内容读进内存。从内存读取一次,写磁盘一次。
11但当上传文件很大时,django会把上传文件写到临时文件中,然后存放到系统临时文件夹中。
12:paramrequest:
13:return:
14'''
15#从请求的FILES中获取上传文件的文件名,file为页面上type=files类型input的name属性值
16filename=request.FILES['upload_files'].name
17#在项目目录下新建一个文件
18withopen(filename,'wb')asf:
19#从上传的文件对象中一点一点读
20forchunkinrequest.FILES['upload_files'].chunks():
21#写入本地文件
22f.write(chunk)
23returnHttpResponse('上传ok')
24
25defget(self,request):
26returnrender(request,'uploadFiles.html')
views.py
1"""day67URLConfiguration
2
3The`urlpatterns`listroutesURLstoviews.Formoreinformationpleasesee:
4https://docs.djangoproject.com/en/2.2/topics/http/urls/
5Examples:
6Functionviews
71.Addanimport:frommy_appimportviews
82.AddaURLtourlpatterns:path('',views.home,name='home')
9Class-basedviews
101.Addanimport:fromother_app.viewsimportHome
112.AddaURLtourlpatterns:path('',Home.as_view(),name='home')
12IncludinganotherURLconf
131.Importtheinclude()function:fromdjango.urlsimportinclude,path
142.AddaURLtourlpatterns:path('blog/',include('blog.urls'))
15"""
16fromdjango.contribimportadmin
17fromdjango.urlsimportpath
18fromapp01importviews
19
20urlpatterns=[
21path('upload/',views.Upload.as_view()),
22]
urls.py
注意settings.py中的这一行要注释掉
'django.middleware.csrf.CsrfViewMiddleware',
点击运行,文件会上传到项目的根目录下面。
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h54868.shtml