📜  我们可以将图像存储在 django 项目中,以便 t 可以在 html 文件中工作 - Html (1)

📅  最后修改于: 2023-12-03 15:09:57.075000             🧑  作者: Mango

在 Django 项目中存储图像并在 HTML 文件中使用

本文将介绍如何在 Django 项目中存储图像,并在 HTML 文件中使用这些图像。在 Django 中,可以使用一个名为 MEDIA_ROOT 的设置来指定存储媒体文件的根目录。

步骤1: 创建 Django 项目

首先,创建一个 Django 项目。可以使用以下命令:

$ django-admin startproject myproject

然后进入 myproject 目录:

$ cd myproject
步骤2: 创建一个应用程序

创建一个名为 gallery 的应用程序:

$ python manage.py startapp gallery

接下来,将应用程序添加到项目的设置文件 (myproject/settings.py) 中:

INSTALLED_APPS = [
    # ...
    'gallery',
]
步骤3: 定义图像模型

gallery/models.py 文件中定义一个名为 Image 的模型:

from django.db import models

class Image(models.Model):
    name = models.CharField(max_length=255)
    image = models.ImageField(upload_to='images/')

使用 upload_to 参数告诉 Django 图像文件应该存储在哪里。在这个例子中,将把它们存储在 media/images/ 目录中。

可以使用以下命令创建数据库表:

$ python manage.py makemigrations
$ python manage.py migrate
步骤4: 添加图像视图

gallery/views.py 文件中添加一个视图,以便在 HTML 文件中使用:

from django.shortcuts import render
from .models import Image

def home(request):
    images = Image.objects.all()
    return render(request, 'gallery/home.html', {'images': images})

这个视图将查询 Image 模型,并将结果作为 images 变量传递到 gallery/home.html 模板中。

步骤5: 创建 HTML 模板

gallery/templates/gallery/home.html 文件中创建一个 HTML 模板,来展示存储在数据库中的图像:

{% extends 'base.html' %}

{% block content %}
  <h1>Gallery</h1>
  {% for image in images %}
    <img src="{{ image.image.url }}" alt="{{ image.name }}">
  {% endfor %}
{% endblock %}

在这个模板中,使用 for 循环遍历从视图传递的 images 变量,并将每个图像的 URL 添加到 img 标签的 src 属性中。

步骤6: 配置媒体设置

需要在设置文件 (myproject/settings.py) 中配置媒体设置才能使用媒体文件,如下所示:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

在这里,MEDIA_URL 指定从服务器提供媒体文件的 URL,而 MEDIA_ROOT 是存储媒体文件的本地文件系统路径。

步骤7: 配置 URL

将视图添加到应用程序的 URL (/gallery/) 中,如下所示:

from django.urls import path
from .views import home

urlpatterns = [
    path('', home, name='home'),
]
步骤8: 运行开发服务器

使用以下命令启动 Django 开发服务器:

$ python manage.py runserver

现在,可以在浏览器中访问 http://127.0.0.1:8000/gallery/ 来查看存储在数据库中的图像。

结论

在 Django 项目中存储图像并在 HTML 文件中使用这些图像非常简单。需要定义一个模型来存储图像,然后将视图添加到 HTML 模板中。最后,必须配置媒体设置来确保可以在 HTML 文件中找到图像文件。