Django_图片的上传下载显示配置
图片上传的配置
image = models.ImageField(upload_to='org/%Y/%m',...)
upload_to默认是上传到项目的'MEDIA_ROOT/org/%Y/%m'的,但此时若没有进行全局的MEDIA_ROOT配置,那就会在根目录下生成org文件夹
无论任何时候,数据库中都只会存储'org/2019/12/imooc.png'
所以需要配置media
settings.py
MEDIA_URL='/media/'
MEDIA_ROOT=os.path.join(BASE_DIR,'media')
这个时候,在xadmin页面点上传文件,然后发现根目录下的多了media文件夹,而且图片也在里面了
但是为什么网页还是显示破图?
因为没有配置url地址
此时,去配置url
from django.views.static import serve
from MxOnline.settings import MEDIA_ROOT
url(r'^media/(?P<path>.*)$', serve,{'document_root':MEDIA_ROOT}),
此时,图片上传与访问配置完成
分析: serve(request, path, document_root=None,...) 函数其实就是做路径的拼接
print(MEDIA_ROOT) >>> G:\PycharmProjects\Jzy\07.xadmin\MxOnline\media
serve源码:
path = posixpath.normpath(path).lstrip('/')
fullpath = Path(safe_join(document_root, path))
print(path) >>> org/2019/12/imooc.png
print(fullpath) >>> G:\PycharmProjects\Jzy\07.xadmin\MxOnline\media\org\2019\12\imooc.png
让MEDIA_URL成为全局变量,方便html调用
'django.template.context_processors.media',
{{ MEDIA_URL }}{{ hot_course.image }} 功能等同于 {{ hot_course.image.url }}
总结:
MEDIA_URL='/media/' 这个media和url地址中的media必须一致 url(r'^media/(?P<path>.*)$', ...
MEDIA_ROOT=os.path.join(BASE_DIR,'media') 这个media必须和实际的文件夹名字一致
Django_图片的上传下载显示配置的更多相关文章
- .Net Core 图片文件上传下载
当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. ...
- django中图片的上传和显示
上传图片实际上是 把图片存在服务器的硬盘中,将图片存储的路径存在数据库中. 1 首先要配置文件上传的路径: 1.1 建立静态文件目录 在项目根目录下 新建一个 static文件夹,下面再建立一个med ...
- MVC 4 图片的上传及显示
1 首先我们看一下如何上传 1.1 view 上传页面: 1: @using (Html.BeginForm("Create", "Achievement", ...
- 文件上传下载显示进度(vue)
编写了一个vue组件,可以实时显示文件上传和下载时候的进度 <template> <div v-show="circleProgress_wrapper_panel_sta ...
- Django中图片的上传并显示
一.settings配置文件中配置 MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'medias').replace('\\', ...
- 航空售票系统设计分析(Markdownpad2图片服务器上传无法显示)
一.体系结构设计 1.系统原型图 2.体系结构环境图 3.构建结构图 二.人机交互界面设计 1.用户分析结果及建议 本次分析的主要目标关注用户评论反馈,对反馈进行归纳,设计出用户喜欢的界面样式.用户的 ...
- ruby on rails爬坑(三):图片上传及显示
一,问题及思路 最近在用rails + react + mysql基本框架写一个cms + client的项目,里面涉及到了图片的上传及显示,下面简单说说思路,至于这个项目的配置部署,应该会在寒假结束 ...
- 用Canvas+Javascript FileAPI 实现一个跨平台的图片剪切、滤镜处理、上传下载工具
直接上代码,其中上传功能需要自己配置允许跨域的文件服务器地址~ 或者将html文件贴到您的站点下同源上传也OK. 支持: 不同尺寸图片获取. 原图缩小放大. 原图移动. 选择框大小改变. 下载选中的区 ...
- ASP.NET MVC图片管理(上传,预览与显示)
先看看效果(下面gif动画制作有点大,5.71MB): 题外话:上面选择图片来源于Insus.NET的新浪微博:http://weibo.com/104325017 也是昨晚(2015-07-03)I ...
随机推荐
- imagick的简单使用
原文:https://blog.csdn.net/wulove52/article/details/78376142 PHP建图通常都用GD库,因为是内置的不需要在服务器上额外安装插件,所以用起来比较 ...
- Open Judge 1.4 09
09:判断能否被3,5,7整除 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个整数,判断它能否被3,5,7整除,并输出以下信息:1.能同时被3,5,7整除(直接输出3 5 ...
- python模块之psutil
一.模块安装 1.简介 psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息. ...
- establish状态,本地ip和端口连接本地ip端口可能是一样的。
以下是从stackoverflow上抄下来的,很有帮助 How can you have a TCP connection back to the same port? A TCP connectio ...
- js off 缓动动画
动画也有很多种,一起来学习,缓动动画吧 缓动动画 1.缓动动画原理=盒子位置+(目标盒子位置-现在盒子位置)/10 2.步长越来越小 3.让步长越来越小的公式 步长=(目标位置-本身位置)/ ...
- 10分钟彻底理解Redis持久化和主从复制
在这篇文章,我们一起了解 Redis 使用中非常重要的两个机制:Reids 持久化和主从复制. 什么是 Redis 持久化? Redis 作为一个键值对内存数据库(NoSQL),数据都存储在内存当中, ...
- 【转】自动化框架中引入ExtentReport美化报告
本文链接:https://blog.csdn.net/qq_30353203/article/details/82023922一.先引入三个依赖包 <dependency> <gro ...
- agentzh 的 Nginx 教程(版本 2019.07.31)
agentzh 的 Nginx 教程(版本 2019.07.31) agentzh 的 Nginx 教程(版本 2019.07.31) https://openresty.org/download/a ...
- Java基础 import 要在所有的class前面
JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code ...
- Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误。如果未分配 ID,请显式设置引发回发事件的控件的 ID 属性以避免此错误。
ylbtech-Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件 ...