通过django的upload组件上传图片并重命名

在用django开发app服务端的时候,利用了djangoupload组件上传图片,因图片名字不统一所以想给上传的图片重命名,从网上找了一些代码资料,在自己的项目中出错,所以自己摸索找到了解决办法,代码如下:

1、在项目根目录中新建文件夹system,并在system文件夹下添加__init__.pystorage.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、这样就解决了问题,效果如下:
图片描述


笨鸟先飞
笨鸟先飞
300 声望
7 粉丝
0 条评论
推荐阅读
django中 实现向带有外键(一对多和多对多)数据库中批量插入数据
models模型中有文章主表DetailInfo、文章分类表Types、文章资源表ResourcesLink,有一对多和多对多的关系。1、models.py: {代码...} 2、json数据格式 {代码...} 3.实现批量插入数据 {代码...}

xiaomayi2012阅读 2.3k

基于Sanic的微服务基础架构
使用python做web开发面临的一个最大的问题就是性能,在解决C10K问题上显的有点吃力。有些异步框架Tornado、Twisted、Gevent 等就是为了解决性能问题。这些框架在性能上有些提升,但是也出现了各种古怪的问题难以...

jysong6阅读 3.9k评论 3

滚蛋吧,正则表达式!
你是不是也有这样的操作,比如你需要使用「电子邮箱正则表达式」,首先想到的就是直接百度上搜索一个,然后采用 CV 大法神奇地接入到你的代码中?

良许4阅读 2.2k

又一款眼前一亮的Linux终端工具!
今天给大家介绍一款最近发现的功能十分强大,颜值非常高的一款终端工具。这个神器我是在其他公众号文章上看到的,但他们都没把它的强大之处介绍明白,所以我自己体验一波后,再向大家分享自己的体验。

良许5阅读 1.8k

FastAPI性能碾压Flask?
不止一次的听过,FastAPI性能碾压Flask,直追Golang,不过一直没有测试过,今天闲着没事测试一下看看结果。不知道是哪里出了问题,结果大跌眼镜。

二毛erma02阅读 10.1k评论 3

封面图
Python之如何优雅的重试
为了避免偶尔的网络连接失败,需要加上重试机制,那么最简单的形式就是在对应的代码片段加一个循环,循环体里使用异常捕获,连接成功时退出循环,否则就重复执行相关逻辑,此时修改之后的函数f如下

Harpsichord12073阅读 7.3k

Linux终端居然也可以做文件浏览器?
大家好,我是良许。在抖音上做直播已经整整 5 个月了,我很自豪我一路坚持到了现在【笑脸】最近我在做直播的时候,也开始学习鱼皮大佬,直播写代码。当然我不懂 Java 后端,因此就写写自己擅长的 Shell 脚本。但...

良许1阅读 2.1k

300 声望
7 粉丝
宣传栏