Django后端上传多张图片到前端页面并展示
时间: 2023-07-15 15:11:34 浏览: 29
实现这个功能需要以下步骤:
1. 定义一个模型来存储上传的图片,例如:
```python
from django.db import models
class Image(models.Model):
image = models.ImageField(upload_to='images/')
```
2. 创建一个表单来让用户上传图片,例如:
```python
from django import forms
class ImageUploadForm(forms.Form):
images = forms.ImageField(widget=forms.ClearableFileInput(attrs={'multiple': True}))
```
3. 在视图函数中处理上传的图片,将它们保存到数据库中,并将图片的URL传递给模板。例如:
```python
from django.shortcuts import render, redirect
from .forms import ImageUploadForm
from .models import Image
def upload(request):
if request.method == 'POST':
form = ImageUploadForm(request.POST, request.FILES)
if form.is_valid():
for image in request.FILES.getlist('images'):
Image.objects.create(image=image)
return redirect('gallery')
else:
form = ImageUploadForm()
return render(request, 'upload.html', {'form': form})
def gallery(request):
images = Image.objects.all()
return render(request, 'gallery.html', {'images': images})
```
4. 在模板中展示上传的图片,例如:
```html
<!-- upload.html -->
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Upload</button>
</form>
<!-- gallery.html -->
{% for image in images %}
<img src="{{ image.image.url }}" alt="Image">
{% endfor %}
```
这样就可以实现在Django后端上传多张图片到前端页面并展示了。
相关推荐

















