摘要:在用开发服务端的时候,利用了的组件上传图片,因图片名字不统一所以想给上传的图片重命名,从网上找了一些代码资料,在自己的项目中出错,所以自己摸索找到了解决办法,代码如下在项目根目录中新建文件夹,并在文件夹下添加和文件并在中添加如下代码
在用django开发app服务端的时候,利用了django的upload组件上传图片,因图片名字不统一所以想给上传的图片重命名,从网上找了一些代码资料,在自己的项目中出错,所以自己摸索找到了解决办法,代码如下:
1、在项目根目录中新建文件夹system,并在system文件夹下添加__init__.py和storage.py文件,并在storage.py中添加如下代码:
</>复制代码
# -*- coding: UTF-8 -*-
from django.core.files.storage import FileSystemStorage
from django.http import HttpResponse
class ImageStorage(FileSystemStorage):
from django.conf import settings
def __init__(self, location=settings.MEDIA_ROOT, base_url=settings.MEDIA_URL):
# 初始化
super(ImageStorage, self).__init__(location, base_url)
# 重写 _save方法
def _save(self, name, content):
import os, time, random
# 文件扩展名
ext = os.path.splitext(name)[1]
# 文件目录
d = os.path.dirname(name)
# 定义文件名,年月日时分秒随机数
fn = time.strftime("%Y%m%d%H%M%S") fn = fn + "_%d" % random.randint(0,100)
# 重写合成文件名
name = os.path.join(d, fn + ext)
# 调用父类方法
return super(ImageStorage, self)._save(name, content)
2、在models.py文件中添加如下代码:
</>复制代码
from system.storage import ImageStorage
pic=models.ImageField(upload_to="img/%Y/%m/%d",storage=ImageStorage())
3、这样就解决了问题,效果如下:
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/42938.html
摘要:选择该页面绑定的标签指定图片上传处理目录注其中为了显示为中文,标明了中文,同时需要下载语言包放到对应的文件夹下。 前言 我们常因为django的自带admin后台功能而选择该框架,但也因为其自动生成的特殊性而在做出特别的更改的时候束手束脚,鉴于项目已经采用了django,而后台要求能够直接上传富文本内容直接用于网页显示,定制性高,后来翻了目前较为知名的几款富文本编辑框,觉得还是tiny...
摘要:选择该页面绑定的标签指定图片上传处理目录注其中为了显示为中文,标明了中文,同时需要下载语言包放到对应的文件夹下。 前言 我们常因为django的自带admin后台功能而选择该框架,但也因为其自动生成的特殊性而在做出特别的更改的时候束手束脚,鉴于项目已经采用了django,而后台要求能够直接上传富文本内容直接用于网页显示,定制性高,后来翻了目前较为知名的几款富文本编辑框,觉得还是tiny...
摘要:选择该页面绑定的标签指定图片上传处理目录注其中为了显示为中文,标明了中文,同时需要下载语言包放到对应的文件夹下。 前言 我们常因为django的自带admin后台功能而选择该框架,但也因为其自动生成的特殊性而在做出特别的更改的时候束手束脚,鉴于项目已经采用了django,而后台要求能够直接上传富文本内容直接用于网页显示,定制性高,后来翻了目前较为知名的几款富文本编辑框,觉得还是tiny...
摘要:前端提交提交成功格式不对不允许上传这种格式文件已存在文件已存在上传错误上传错误服务器错误上传文件上传服务端获取原始文件名获取文件后缀名设置新文件名允许上传的图片后缀小于上传错误此处可以输出文件的详细信息文件已存在格式不对文件目录记 showImg(https://segmentfault.com/img/bVbwr3B?w=340&h=133); 前端 index.html ...
摘要:对象关系映射,简称模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。在业务逻辑层和数据库层之间充当了桥梁的作用。每个字段被指定为一个类属性,每个属性映射到一个数据库列。字符类型,必须提供参数,表示字符长度。 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是...
阅读 4092·2023-04-26 00:36
阅读 2790·2021-11-16 11:44
阅读 1231·2021-11-15 17:58
阅读 1796·2021-09-30 09:47
阅读 1321·2019-08-30 13:05
阅读 1656·2019-08-30 12:55
阅读 2536·2019-08-30 11:02
阅读 2953·2019-08-29 17:01