需要用到 models.ImageField(), 它继承自 models.FileField(),  用ImageField的时候需要安装pillow

pip install pillow -i https://pypi.douban.com/simple/

首先,进行媒体文件配置:

settings中配置:

# 真正存储图片的文件夹
MEDIA_ROOT = os.path.join(BASE_DIR, "media") # 用于URL访问
MEDIA_URL = "/media/"

  

为了能够正确访问到资源,需要配置一下urls.py

from django.conf import settings
from django.conf.urls.static import static urlpatterns = [
...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

  

此时,就已经配置好了,可以进行测试了

现在,定义一个模型:

# 文章表
class Article(models.Model):
# 文章标题title
title = models.CharField(max_length=64, verbose_name='标题') # 文章内容content
content = models.TextField(verbose_name='正文') # 【文章的封面图 article_picture】
# upload_to字段表示,要将图片上传到哪个路径下,此处为img
# 这个操作是在【MEDIA_ROOT = os.path.join(BASE_DIR, "media")】下进行的,也就是会在media下有一个img
# 文件真正存放的位置是: media/img/xxx.png
# 而article_picture字段中存的只是图片的路径
article_picture = models.ImageField(upload_to='img/', verbose_name='封面图')

  

此时,我们在后台上传一张图片:

那怎么在前端展示这个封面图呢?
例如,现在我来展示一篇文章的信息,如下:

{% for article in articles %}
<div>
<img src="{{ article.article_picture }}" alt="">
<br>
<br>
<p>{{ article.title }}</p>
<p>{{ article.content }}</p>
</div>
{% endfor %}

但是,这时候还是显示不了图片,原因是 “<img src="{{ article.article_picture }}" alt="">” 写错了,应该这么写:【article.article_picture.url】

{% for article in articles %}
<div>
<img src="{{ article.article_picture.url }}" alt="">
<br>
<br>
<p>{{ article.title }}</p>
<p>{{ article.content }}</p>
</div>
{% endfor %}

这样就可以了,如图:

Django - 在后台上传文章封面图 - 并在前端页面展示的更多相关文章

  1. IWMS后台上传文章,嵌入音频文件代码

    <object width="260" height="69" classid="clsid:6bf52a52-394a-11d3-b153-0 ...

  2. IWMS后台上传文章,嵌入视频,调用优酷通用代码

    <a href="http://player.youku.com/player.php/sid/XODcxNjM3OTYw/v.swf " target="_bla ...

  3. SpringBoot图片上传(四) 一个input上传N张图,支持各种类型

    简单介绍:需求上让实现,图片上传,并且可以一次上传9张图,图片格式还有要求,网上找了一个测试了下,好用,不过也得改,仅仅是实现了功能,其他不尽合理的地方,还需自己打磨. 代码: //html<d ...

  4. WordPress 后台上传自定义网站Logo

    需求: 众所周知一般网站的logo都是固定的所以我在做网站时也是使用的静态logo文件,但最近用wp给一个客户做的网站时,因为网站现在的logo可能会需要重新设计,所以客户提出了需要在后台可以自己修改 ...

  5. Django实现图片上传并前端页面显示

    Django实现图片上传和图片显示 开始之前我们先确认环境中已经安装了Pillow,如果没有安装,可以通过pip install Pillow来安装,这个是python的图像处理库 数据库设置 我们创 ...

  6. django实现分片上传文件

    目标:利用django实现上传文件功能 1,先设置路由系统 urls.py from django.conf.urls import url,include from django.contrib i ...

  7. python Django之文件上传

    python Django之文件上传 使用Django框架进行文件上传共分为俩种方式 一.方式一 通过form表单进行文件上传 #=================================== ...

  8. 背水一战 Windows 10 (120) - 后台任务: 后台上传任务

    [源码下载] 背水一战 Windows 10 (120) - 后台任务: 后台上传任务 作者:webabcd 介绍背水一战 Windows 10 之 后台任务 后台上传任务 示例演示 uwp 的后台上 ...

  9. Django之用户上传文件的参数配置

    Django之用户上传文件的参数配置 models.py文件 class Xxoo(models.Model): title = models.CharField(max_length=128) # ...

  10. js将用户上传gif动图分解成多张帧图片

    js将用户上传gif动图分解成多张帧图片 写在前面 工作中遇到一个这么一个需求:这是一个多图上传的场景,如果用户上传选择多张图片,则上传后直接展示多张图片,如果上传的图片是gif动图,则需要分解这张动 ...

随机推荐

  1. MogDB/openGauss如何实现事务的rollback

    MogDB/openGauss 如何实现事务的 rollback 本文出处:https://www.modb.pro/db/113262 数据库最主要的功能就是存储数据,然而我们在进行数据库操作时,却 ...

  2. MogDB 安装解压错误:cannot run bzip2: No such file or directory

    MogDB 安装解压错误:cannot run bzip2: No such file or directory 本文出处:https://www.modb.pro/db/403662 问题症状 Mo ...

  3. openGauss社区入门(openGauss-定时任务)

    为什么要使用定时任务 在一个固定的时间点活间隔一段时间需要频繁触发某一动作,为了使用便捷,有了定时任务,极大的减少了工作的重复性,提高了效率. 定时任务的内容 基于定时任务产生的背景,定时任务内容包括 ...

  4. HarmonyOS 设备管理开发:USB 服务开发指导

      基本概念 USB服务是应用访问底层的一种设备抽象概念.开发者根据提供的USB API,可以获取设备列表.控制设备访问权限.以及与连接的设备进行数据传输.控制命令传输等. 运作机制 USB服务系统包 ...

  5. HarmonyOS创作激励计划启动:助力技术创作突破边界

      即日起推出HarmonyOS创作激励计划,成功投稿并入选的文章将在HarmonyOS开发者公众号上线,9大技术社区同步宣发,不仅有丰厚稿酬,还有机会赢取创作奖品! 活动时间 即日起-2024年12 ...

  6. mysql 必知必会整理—事务[十六]

    前言 简单整理一下事务. 正文 并非所有引擎都支持事务处理 正如第21章所述,MySQL支持几种基本的数据库引擎. 正如本章所述,并非所有引擎都支持明确的事务处理管理. MyISAM和InnoDB是两 ...

  7. 重新整理数据结构与算法(c#)——算法套马踏棋算法[三十三]

    前言 马踏棋盘 概念在这,不做过多复述. https://baike.sogou.com/v58959803.htm?fromTitle=马踏棋盘 思路是这样子的,一匹马有上面几种做法,然后进行尝试, ...

  8. Linux_aarch64_head.S到main.c的环境建立

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明   无 前言   最开始,我仅仅是对linux比较感兴 ...

  9. 应用容灾中,MySQL数据表是否需要跨云同步?

    简介: 容灾系统的重要目标在于保证系统数据和服务的"连续性".当系统发生故障时,容灾系统能够快速恢复服务和保证数据的有效性.为了防止天灾人祸.不可抗力,在同城或异地建立对应的IT系 ...

  10. K8s Ingress Provider 为什么选择 MSE 云原生网关?

    ​简介:在虚拟化时期的微服务架构下,业务通常采用流量网关 + 微服务网关的两层架构,流量网关负责南北向流量调度和安全防护,微服务网关负责东西向流量调度和服务治理,而在容器和 K8s 主导的云原生时代, ...