下面是详细的“Django 读取图片到页面实例”的攻略,包含两个示例说明。
1. 示例1:读取静态文件夹中的图片到页面
- 在 Django 项目的
settings.py
中添加以下设置,指定项目中的静态文件夹路径:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
其中 os.path.join(BASE_DIR, "static")
表示将 static
文件夹作为静态文件夹并引入到 Django 项目中。
- 在
views.py
中编写视图函数,代码如下:
from django.shortcuts import render
def index(request):
context = {'image_path': 'images/sample.png'}
return render(request, 'index.html', context)
其中,context
字典将图片路径 images/sample.png
作为值传递给模板,供模板渲染页面使用。render
函数将 context
字典和模板 index.html
传递给客户端。
- 在项目的
templates
文件夹中,在index.html
模板文件中添加以下代码,在页面中显示图片:
<img src="{{ STATIC_URL }}{{ image_path }}" alt="Sample Image">
其中 {{ STATIC_URL }}
表示静态文件夹的 URL,{{ image_path }}
表示图片路径,用于生成图片的 URL。
- 运行 Django 项目并访问
localhost:8000
,即可在页面上看到图片。
2. 示例2:将图片上传到 Django 服务器并从数据库中读取
- 在 Django 项目的
settings.py
中添加以下设置,指定项目中的媒体文件夹路径:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
其中 os.path.join(BASE_DIR, 'media/')
表示将 media
文件夹作为媒体文件夹并引入到 Django 项目中。
- 在
models.py
中定义图片模型,代码如下:
from django.db import models
class ImageModel(models.Model):
title = models.CharField(max_length=100, blank=True, default='')
img = models.ImageField(upload_to='images/')
其中 upload_to='images/'
表示将图片文件上传到 media/images
目录中。
- 在
views.py
中编写视图函数,代码如下:
from django.shortcuts import render
from .models import ImageModel
def index(request):
img_obj = ImageModel.objects.get(pk=1)
context = {'image_path': img_obj.img.url}
return render(request, 'index.html', context)
其中 ImageModel.objects.get(pk=1)
表示从数据库中获取 id 为 1 的图片。context
字典将图片 URL 作为值传递给模板,供模板渲染页面使用。render
函数将 context
字典和模板 index.html
传递给客户端。
- 在项目的
templates
文件夹中,在index.html
模板文件中添加以下代码,在页面中显示图片:
<img src="{{ image_path }}" alt="Sample Image">
其中 {{ image_path }}
表示图片 URL,用于生成图片的 URL。
- 运行 Django 项目并访问
localhost:8000
,即可在页面上看到图片。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django 读取图片到页面实例 - Python技术站