Django上传文件到服务器
时间: 2023-08-30 20:11:35 浏览: 104
django 上传文件
5星 · 资源好评率100%
在 Django 中,可以通过 Django 自带的文件处理模块来实现文件上传到服务器的功能。具体步骤如下:
1. 在 settings.py 中配置上传文件存储目录:
```python
MEDIA_ROOT = '/path/to/media'
MEDIA_URL = '/media/'
```
2. 在 models.py 中定义上传文件的模型:
```python
from django.db import models
class UploadFile(models.Model):
title = models.CharField(max_length=50)
file = models.FileField(upload_to='uploads/%Y/%m/%d/')
```
其中,`upload_to` 参数指定了上传文件存储的相对路径,可以根据需要进行修改。
3. 在 forms.py 中定义上传文件的表单:
```python
from django import forms
from .models import UploadFile
class UploadFileForm(forms.ModelForm):
class Meta:
model = UploadFile
fields = ('title', 'file',)
```
4. 在 views.py 中处理文件上传请求:
```python
from django.shortcuts import render, redirect
from .forms import UploadFileForm
def upload_file(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('success')
else:
form = UploadFileForm()
return render(request, 'upload.html', {'form': form})
def success(request):
return render(request, 'success.html')
```
5. 在模板文件 upload.html 中添加文件上传表单:
```html
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">上传文件</button>
</form>
```
6. 在模板文件 success.html 中显示上传成功信息:
```html
<h2>文件上传成功!</h2>
```
通过以上步骤,就可以实现 Django 中上传文件到服务器的功能。
阅读全文