如何在 Python Django 中上传多个图片?

在本教程中,我将向您展示如何在 python django 中上传多张图片。这篇文章将为您提供如何在 python django 应用程序中上传多个图像的简单示例。

我们将看一下如何在 python django bootstrap 中上传多个图像的示例。
如果您想查看如何在 python django 示例中上传多个图像的示例,那么您来对地方了。

在这里,我简单地解释了如何在数据库中的 python django 中上传多个图像的分步示例。

第 1 步:创建项目

在这一步中,我们将使用 django-admin 创建一个新的 django 项目。返回命令行界面并运行以下命令:

django-admin startproject example

第 2 步:创建应用程序

python3 manage.py startapp multipleImage

第 3 步:更新 setting.py

在这一步中,我们需要在 settings.py 文件中做两件事,一是更改模板查找目录的路径。第二个是配置我们的媒体文件夹。将以下行添加到您的 settings.py 文件中:

接下来需要在settings.py文件中添加如下:

import os

....
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'multipleImage',
]

....
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, "templates")],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
....
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = "/media/"

第 4 步:数据库设置

下一步,我们将修改 settings.py 文件并更新数据库设置以配置 mydb 数据库: settings.py

DATABASES = {  
    'default': {  
        'ENGINE': 'django.db.backends.mysql',  
        'NAME': 'example',  
        'USER':'root',  
        'PASSWORD':'root',  
        'HOST':'localhost',  
        'PORT':'3306'  
    }  
}  

第 5 步:创建模型

在这一步中,我们将需要用于存储联系人的数据库模型。打开 multipleImage/models.py 文件并添加以下代码: multipleImage/models.py

from django.db import models
class MultipleImage(models.Model):
    images = models.FileField()

创建这些模型后,您需要使用以下命令创建迁移:

第 6 步:创建迁移

python manage.py makemigrations

成功运行上述命令后进入 multipleImage/migrations/0001_initial.py
multipleImage/migrations/0001_initial.py

# Generated by Django 4.0.5 on 2022-06-29 04:55

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('blog', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='MultipleImage',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('images', models.FileField(upload_to='')),
            ],
        ),
    ]

接下来,您需要使用以下命令迁移数据库:

python manage.py migrate

第 7 步:创建视图

在这一步中,我们需要创建视图来执行获取记录到数据库。打开 multipleImage/views.py 文件并添加:
multipleImage/views.py

from django.shortcuts import render
from .models import MultipleImage
from django.contrib import messages

# Create your views here.

def multipleUpload(request):
    imagesUpload = ''
    
    if request.method == "POST":
        images = request.FILES.getlist('images')
        for image in images:
            imagesUpload = MultipleImage.objects.create(images=image)
    images = MultipleImage.objects.all()

    if imagesUpload:
        messages.success(request, 'Image Upload Successfully')   
        
    return render(request, 'index.html', {'images': images})

第 8 步:创建视图

接下来,打开 multipleImage/templates/index.html 文件并添加:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>How to Multiple image Upload in Python Django ?</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css">
    <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.slim.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
    <div class="container mt-5 pt-5">
        <div class="row d-flex justify-content-center">
            <div class="col-md-9">
                {% if messages %}
                    <div class="alert alert-success alert-dismissible">
                        <button type="button" class="close" data-dismiss="alert">×</button>
                        {% for message in messages %}
                            {{ message }}
                        {% endfor %}
                    </div>
                {% endif %}
                <div class="card">
                    <div class="card-header">
                        <h4>How to Multiple image Upload in Python Django ? - <span class="text-primary">Tuts-Station.com</span></h4>
                    </div>
                    <div class="card-body">
                        <form method = "post" enctype="multipart/form-data">
                            {% csrf_token %}
                            <input type="file" class="form-control" name="images" multiple>
                            <hr>
                            <div class="row mt-2">
                                <div class="col-md-12 text-center">
                                    <button type="submit" class="btn btn-success">Upload</button>
                                </div>
                            </div>
                        </form>

                        <hr>
                        {% for img in images %}
                        <img src="{{img.images.url}}" alt="Image" width="100" height="100" style="border: 1px solid black;">
                        {% endfor %}
                        
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>

第 9 步:创建 URL

在本节中,我们将创建 url 来访问我们的视图。转到 urls.py multipleImage/urls.py 文件并按如下方式更新它:
multipleImage/urls.py

from django.contrib import admin
from django.urls import path
from django.conf import settings
from multipleImage.views import *
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('image-upload', multipleUpload, name = 'multipleUpload'),
]

if settings.DEBUG:
        urlpatterns += static(settings.MEDIA_URL,
                              document_root=settings.MEDIA_ROOT)

运行服务器

在这一步中,我们将运行本地开发服务器来玩我们的应用程序,而无需将其部署到网络上。

python manage.py runserver

接下来,使用 Web 浏览器访问 http://localhost:8000/ 地址。

希望对您用….

how-to-multiple-image-upload-in-python-django

发表评论

邮箱地址不会被公开。 必填项已用*标注