Django [实战] 通过表单上传文件
from django import forms
from django.http import HttpResponseRedirect
from django.shortcuts import render
from .models import Document
# 定义上传文件的表单
class DocumentForm(forms.Form):
file = forms.FileField()
# 处理文件上传的视图函数
def upload_file(request):
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
new_doc = Document(docfile=request.FILES['file'])
new_doc.save()
# 重定向到一个新的URL,防止表单的重复提交
return HttpResponseRedirect('/success/url/')
else:
form = DocumentForm()
return render(request, 'upload.html', {'form': form})
在这个例子中,我们首先定义了一个名为DocumentForm
的类来处理文件上传。然后,在upload_file
视图函数中,我们检查请求是否是POST方法,如果是,我们实例化表单并将POST数据和文件传递给它。如果表单验证成功,我们将文件保存到数据库,并重定向到一个成功页面。如果请求不是POST或者表单不是有效的,我们渲染带有上传表单的页面供用户填写。
评论已关闭