一、文件上传

1. 浏览器访问

http://127.0.0.1:8000/f1/

http://127.0.0.1:8000/f2/

2. urls

from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^f1/', views.f1),
    url(r'^f2/', views.f2),
]

3. views

 1 from django.shortcuts import render,redirect,HttpResponse
 2 from app01 import models
 3 from django.forms import Form
 4 from django.forms import fields
 5 from django.forms import widgets
 6 
 7 
 8 # **************************文件上传**************************
 9 def f1(request):
10     if request.method == "GET":
11         return render(request,'f1.html')
12     else:
13         import os
14         # request.POST
15         file_obj = request.FILES.get('fafafa')
16         f = open(os.path.join('static',file_obj.name),'wb')
17         for chunk in file_obj.chunks():
18             f.write(chunk)
19         f.close()
20         # return render(request,'f1.html')         # 上传成功后刷新当前页面
21         return HttpResponse('上传成功')          # 上传完成后显示文字
22 
23 class F2Form(Form):
24     user = fields.CharField()
25     fafafa = fields.FileField()
26 
27 def f2(request):
28     if request.method == "GET":
29         obj = F2Form()
30         return render(request,'f2.html',{'obj':obj})
31     else:
32         obj = F2Form(data=request.POST,files=request.FILES)
33         if obj.is_valid():
34             print(obj.cleaned_data.get('fafafa').name)
35             print(obj.cleaned_data.get('fafafa').size)
36         return render(request,'f2.html',{'obj':obj})
views

相关文章: