在Django中,要实现上传图片并在网页中保存和显示,可以按照以下步骤进行操作:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# 其他URL配置
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
from django.db import models
class MyImage(models.Model):
image = models.ImageField(upload_to='images/')
python manage.py makemigrations
python manage.py migrate
from django import forms
from .models import MyImage
class MyImageForm(forms.ModelForm):
class Meta:
model = MyImage
fields = ('image',)
from django.shortcuts import render, redirect
from .forms import MyImageForm
def upload_image(request):
if request.method == 'POST':
form = MyImageForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('image_list')
else:
form = MyImageForm()
return render(request, 'upload_image.html', {'form': form})
def image_list(request):
images = MyImage.objects.all()
return render(request, 'image_list.html', {'images': images})
upload_image.html模板文件示例:
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">上传图片</button>
</form>
image_list.html模板文件示例:
{% for image in images %}
<img src="{{ image.image.url }}" alt="Image">
{% endfor %}
通过以上步骤,你可以在Django中实现上传图片并在网页中保存和显示。在这个过程中,使用了Django的模型、表单、视图函数和模板等功能来处理图片的上传和展示。
领取专属 10元无门槛券
手把手带您无忧上云