Django文件上传
1、创建模型models.py
class uImage(models.Model):
uname = models.CharField(max_lenght=30()
image = models.FileField("./upload/") def __unicode__(self): return self.uname
"./upload/" 没有"."会导致文件上传报错
模型创建完后,需要同步到数据库,命令为:python mange.py syncdb
2、创建表单 forms.py
class uForm(forms.Form):
uname = forms.CharField) image = forms.FileField()
3、创建模板 models.py
<form method="POST" enctype="multipart/form-data"> {{uf.as_p}} <input type="sumbit" value="OK"> </form>
enctype="multipart/form-data" 为必须填写项,否则上传的文件将不给予保存
uf.as_p → HTML <p></p>
uf.as_ul → HTML <ul></ul>
uf.as_table → HTML <table></table>
4、视图 views.py
def upload(req): if req.method == 'POST': //绑定动作,req.FIFES上传文件的绑定动作 uf = uForm(req.POST, req.FIFES) //表达验证动作 if uf.is_valid(): //获取表达上传数据并传递给uname、image //'uname' 和 'image' 和表达属性name一致,即和froms变量一致 uname = uf.cleaned_data['uname'] image = uf.cleaned_data['image'] //调用模型接口 uimage = UImage() //将表达的值传给数据库字段中 uimage.uname = uname uimage.image = image //保存数据 uimage.save()
return HttpResponse('OK') else: return render_to_respose('upload.html',{"uf":uf})
浙公网安备 33010602011771号