defupload_form(request):
title ="Form上传"if request.method =="GET":
form = UpForm()return render(request,'upload_form.html',{'form': form,"title": title})
form = UpForm(data=request.POST, files=request.FILES)if form.is_valid():print(form.cleaned_data)# 读取图片内容, 写入到文件夹中,并获取文件的路径
img_object = form.cleaned_data.get('img')
file_path = os.path.join("static","image", img_object.name)
f =open(file_path, mode='wb')# print(type(file_path))for chunk in img_object.chunks():
f.write(chunk)
f.close()
file_path =str(file_path)print(form.cleaned_data)# 将图片的文件路径,写入到数据库中
models.Boss.objects.create(
name=form.cleaned_data['name'],
age=form.cleaned_data['age'],
img=file_path,)return HttpResponse('...')return render(request,'upload_form.html',{'form': form,"title": title})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
数据部分
classUpForm(forms.Form):
bootstrap_exclude_fields =['img']def__init__(self,*args,**kwargs):# 重新定义函数,循环标签,改变样式super().__init__(*args,**kwargs)for name, field in self.fields.items():if name in self.bootstrap_exclude_fields:continueif field.widget.attrs:
field.widget.attrs['class']='form-control'
field.widget.attrs['placeholder']= field.label
else:
field.widget.attrs ={'class':'form-control',"placeholder": field.label}
name = forms.CharField(label="姓名")
age = forms.IntegerField(label="年龄")
img = forms.FileField(label="头像")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
classBoss(models.Model):''' 老板 '''
name = models.CharField(verbose_name='姓名', max_length=32)
age = models.IntegerField(verbose_name="年龄")
img = models.CharField(verbose_name="头像", max_length=128)