Django - 在后台上传文章封面图 - 并在前端页面展示
需要用到 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 - 在后台上传文章封面图 - 并在前端页面展示的更多相关文章
- IWMS后台上传文章,嵌入音频文件代码
<object width="260" height="69" classid="clsid:6bf52a52-394a-11d3-b153-0 ...
- IWMS后台上传文章,嵌入视频,调用优酷通用代码
<a href="http://player.youku.com/player.php/sid/XODcxNjM3OTYw/v.swf " target="_bla ...
- SpringBoot图片上传(四) 一个input上传N张图,支持各种类型
简单介绍:需求上让实现,图片上传,并且可以一次上传9张图,图片格式还有要求,网上找了一个测试了下,好用,不过也得改,仅仅是实现了功能,其他不尽合理的地方,还需自己打磨. 代码: //html<d ...
- WordPress 后台上传自定义网站Logo
需求: 众所周知一般网站的logo都是固定的所以我在做网站时也是使用的静态logo文件,但最近用wp给一个客户做的网站时,因为网站现在的logo可能会需要重新设计,所以客户提出了需要在后台可以自己修改 ...
- Django实现图片上传并前端页面显示
Django实现图片上传和图片显示 开始之前我们先确认环境中已经安装了Pillow,如果没有安装,可以通过pip install Pillow来安装,这个是python的图像处理库 数据库设置 我们创 ...
- django实现分片上传文件
目标:利用django实现上传文件功能 1,先设置路由系统 urls.py from django.conf.urls import url,include from django.contrib i ...
- python Django之文件上传
python Django之文件上传 使用Django框架进行文件上传共分为俩种方式 一.方式一 通过form表单进行文件上传 #=================================== ...
- 背水一战 Windows 10 (120) - 后台任务: 后台上传任务
[源码下载] 背水一战 Windows 10 (120) - 后台任务: 后台上传任务 作者:webabcd 介绍背水一战 Windows 10 之 后台任务 后台上传任务 示例演示 uwp 的后台上 ...
- Django之用户上传文件的参数配置
Django之用户上传文件的参数配置 models.py文件 class Xxoo(models.Model): title = models.CharField(max_length=128) # ...
- js将用户上传gif动图分解成多张帧图片
js将用户上传gif动图分解成多张帧图片 写在前面 工作中遇到一个这么一个需求:这是一个多图上传的场景,如果用户上传选择多张图片,则上传后直接展示多张图片,如果上传的图片是gif动图,则需要分解这张动 ...
随机推荐
- openGauss Gin 索引
openGauss Gin 索引 概述 GIN(Generalized Inverted Index)通用倒排索引,是首选的文本搜索索引类型.倒排索引对应的列上的数据类型通常是一个多值类型,索引中包含 ...
- Pytorch Dataset入门
Dataset入门 Pytorch Dataset code:torch/utils/data/dataset.py#L17 Pytorch Dataset tutorial: tutorials ...
- mmcls/mmdet模型部署至 TorchServe
mmcls/mmdet模型部署至 TorchServe 官方教程:模型部署至 TorchServe - MMClassification 0.23.2 文档 接口说明: serve/inference ...
- css3新单位vw、vh、vmin、vmax的使用详解
1,vw.vh.vmin.vmax 的含义 (1) vw. vh. vmin. vmax 是一种视窗单位,也是相对单位.它相对的不是父节点或者页面的根节点.而是由视窗( Viewport)大小来决定的 ...
- 2024年GPLT团体程序设计比赛L2-D吉利矩阵题解
只能说比赛时前期做得太慢了,后面导致题目只能捞点分数(IOI赛制),当时这道题是我不剪枝DFS拿了4分,压线拿铜牌! 考完试一做,发现是个大水题(bushi) 主要原理:DFS(深度优先搜索) + 剪 ...
- 优化搜索排序结果从而“ 提升CTR、CVR业务指标”
简介: 搭建搜索功能不难,难的是如何提高搜索质量,帮助用户快速找到心中所想的内容或商品,那么搜索结果的相关性排序则是影响用户体验最关键的一环,本文通过阿里云开放搜索电商行业解决方案和大家聊一聊如何优化 ...
- 3千字带你搞懂XXL-JOB任务调度平台
思维导图 文章已收录Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary 一.概述 在平时的业务场景中,经常有一些场景需要使用定时任 ...
- 如何使用 PTS 快速发起微服务压测
简介:本文讲阐述什么是微服务架构.微服务架构对系统稳定性带来的影响,以及用性能测试验证稳定性的必要性.用户进行微服务压测的痛点和 PTS 的独特优势.云上使用 PTS 快速发起微服务压测的步骤,以及 ...
- [FAQ] FinalCutPro 视频背景加模糊效果
1. 时间轴右上方,找到 倒数第二个 "显示或隐藏效果浏览器",里面有一个 "模糊" 效果: 2. "模糊"效果中的 "高斯曲线& ...
- [FAQ] SSH 免密登录主机/服务器 怎么操作 ?
1. 生成公私钥对,保存好. 命令:ssh-keygen -t rsa -C "xxx" 2. 将公钥传到远程主机的 ~/.ssh/authorized_keys 之中. 命令:s ...