在 Django 中上传图片

前置知识 – Django 简介

在许多 Web 应用程序中,上传和管理图像文件是一项非常普遍的功能,例如用户头像、产品图片或照片画廊。在 Django 中,我们可以利用模型中的 ImageField 轻松地处理图片上传。

在本文中,我们将带领大家构建一个名为 imageupload 的简单项目,以及一个名为 imageapp 的应用,在这个应用中,用户可以上传酒店图片。

1. 配置 settings.py

添加以下设置以处理媒体文件:

Python


CODEBLOCK_bd1dda6e

  • MEDIA_ROOT 定义了用于存储上传文件的服务器端文件路径。
  • MEDIA_URL 提供了浏览器访问这些文件的 URL。

2. 配置 urls.py 以提供媒体服务

将以下代码添加到项目的 urls.py 中:

Python


CODEBLOCK_99662df1

这确保了在开发过程中可以正常访问媒体文件。

3. 创建模型

image_app 下的 models.py 中创建一个 Hotel 模型:

Python


CODEBLOCK_07c33730

  • ImageField 用于图片上传。
  • upload_to=‘images/‘ 告诉 Django 将上传的图片存储在 media/images/ 文件夹中。

4. 创建模型表单

在你的应用中创建一个 forms.py 文件并定义表单:

Python


CODEBLOCK_03257e11

Django 的 ModelForm 会根据模型自动生成表单字段。

5. 创建 HTML 模板

在 templates 目录下创建一个名为 hotelimageform.html 的模板:

html


CODEBLOCK_e387fcad

解释:

  • enctype="multipart/form-data" 是文件上传所必需的。
  • {% csrf_token %} 用于防止 CSRF 攻击的安全防护。
  • {{ form.as_p }} 将每个表单字段渲染在

    标签中。

6. 创建视图

views.py 中,编写视图来处理表单提交:

Python


CODEBLOCK_d7d0bf0f

7. 添加 URL 模式

更新 urls.py 以包含图片上传和成功页面的路径:

Python


CODEBLOCK_04953f09

8. 运行迁移并测试

运行以下命令:

> python manage.py makemigrations

>

> python manage.py migrate

>

> python manage.py runserver

在浏览器中访问开发服务器 URL – http://localhost:8000/image_upload/。上传一张图片,你将被重定向到成功页面。

输出:

!django03/image_upload 端点快照

上传图片后将显示成功信息。

!django04成功上传的快照

现在,项目目录中将创建 media 目录,并在其中创建 images 目录,图片将存储在该目录下。这是最终结果。

!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20250514165615434360/djangofs.png">djangofs创建 media 目录的快照

显示上传的图片

我们可以编写一个视图来访问上传的图片,为了简单起见,让我们

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/24567.html
点赞
0.00 平均评分 (0% 分数) - 0