Django 图片上传 | 如何使用 Django 上传图片17 Mar 2025 | 4 分钟阅读 图片上传是任何现代 Web 应用程序的主要功能之一。 它允许用户在服务器上上传图像或图片。 幸运的是,Django 提供了使用图像(尤其是上传图像或图片)的简单过程。 使用它,我们可以创建一个漂亮的 Web 应用程序,用户可以在其中上传带有标题的图像。 在本教程中,我们将讨论如何在 Django 应用程序中上传图像。 在我们继续之前,请确保您具有 Django 的基本知识。 如果没有,请访问我们的Django 教程。 将图像上传到 Django大多数 Web 应用程序都处理文件或图像,Django 提供了两个模型字段,允许用户上传图像和文件。 这些字段是 FileField 和 ImageField; 基本上,ImageField 是 FileField 的专门版本,它使用 Pillow 来确认文件是图像。 让我们看下面的创建模型的例子。 models.py 我们创建了 UploadImage 模型,它由两个字段组成 - caption 和 image。 图像字段将用作 Django 的文件存储 API。 此 API 提供了存储和检索文件以及读取和写入文件的功能。 upload_to 参数指定图像将存储的文件位置。 我们不需要手动创建媒体目录; 当我们上传图像时,它会自动创建。 首先,我们需要安装 pillow 库,这有助于处理图像。 我们可以使用以下 pip 命令安装它。 现在将以下设置添加到项目的 settings.py 文件中。 settings.py
在下一步中,我们应该在 urls.py 文件中添加以下配置。 Urls.py 所有必需的配置都已完成; 我们准备好运行以下命令。 运行此命令后,我们就可以创建一个表单,该表单将从用户那里获取图像作为输入。 让我们创建一个表单。 forms.py 创建 Django 模型表单的优点是,它可以处理表单验证,而无需在脚本中显式声明它。 它还将在页面上根据 model.py 文件中提到的模型字段创建表单字段。 要显示此表单,我们需要在模板文件夹下创建 image_form.html 文件。 template/image.form.html 注意 - 我们使用 enctype = "multipart/form-data",它允许通过 POST 发送文件。 如果没有 enctype,用户将无法通过 POST 请求发送文件。 这是在表单中处理文件或图像所必需的。现在我们将创建视图来处理请求。 View.py 上面的视图很简单,并且处理图像的方式与普通表单相同。 当我们上传图像时,将生成 post 请求。 表单会自动验证并保存在媒体文件夹中。 需要注意的一点是,我们使用 form.instance 获取图像对象,它将用于将图像显示到网页。 让我们为此视图创建 URL。 sampleapp/urls.py 运行本地主机服务器后,我们得到以下表单。 输出 ![]() 该文件将存储在我们在模型字段中提到的 media/images 中。 ![]() 结论在本教程中,我们讨论了如何使用 Django 上传图像。 Django 提供了简单的接口来执行图像或文件上传。 我们只需要进行一些配置并在模型表单的字段中定义一个 ImageField。 我们还可以通过遵循相同的过程上传任何文件(.xml,.pdf,.word,.etc),但我们需要在模型的字段中将 ImageField 转换为 FileField。 下一个主题Django ORM 查询 |
我们请求您订阅我们的新闻通讯以获取最新更新。