文件上传示例
下面是一个简单的文件上传示例,其中包含了一个表单和一个视图函数。用户可以通过表单上传文件,并将文件保存到服务器上。为了简单起见,这个示例只处理单个文件上传。
在 forms.py
中定义一个表单类:
from django import forms
class FileUploadForm(forms.Form):
file = forms.FileField()
在 views.py
中编写视图函数来处理文件上传:
from django.shortcuts import render
from .forms import FileUploadForm
def file_upload(request):
if request.method == 'POST':
form = FileUploadForm(request.POST, request.FILES)
if form.is_valid():
file = form.cleaned_data['file']
# 处理上传的文件
return render(request, 'success.html', {'file_name': file.name})
else:
form = FileUploadForm()
return render(request, 'file_upload.html', {'form': form})
在模板文件 file_upload.html
中,使用表单来渲染文件上传表单:
{% extends "base.html" %}
{% block content %}
<h2>File Upload</h2>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Upload</button>
</form>
{% endblock %}
在模板文件 success.html
中,显示上传成功的消息和文件名:
{% extends "base.html" %}
{% block content %}
<h2>Upload Successful</h2>
<p>The file "{{ file_name }}" was uploaded successfully.</p>
{% endblock %}
这是一个基本的文件上传示例,它通过使用 Django 表单和视图函数来处理上传的文件并渲染模板。请注意,为了使文件上传正常工作,必须使用 enctype="multipart/form-data"
属性将表单的编码类型设置为 multipart/form-data
。