django上传图片简单验证以及自动修改图片名称
django实现文件(图片)上传之后自动修改名称以及页面上传图片时的各种提醒:
1、先在你项目中添加一个文件夹如: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) def _save(self,name,content):
#重新文件上传
import os,time,hashlib #获取文件后缀
ext = os.path.splitext(name)[1] #文件目录
d = os.path.dirname(name) #定义文件夹名称
fn = hashlib.md5(time.strftime('%Y%m%d%H%M%S').encode('utf-8')).hexdigest()
name = os.path.join(d,fn+ext) #调用父类方法
return super(ImageStorage,self)._save(name,content)
2、在models.py文件中添加如下代码:
from django.db import models
from datetime import datetime
from system.stroage import ImageStorage
# Create your models here. #文章咨询表
class Article(models.Model):
title = models.CharField(max_length=250, null=False, verbose_name='标题', unique=True)
content = models.TextField(verbose_name='内容')
add_time = models.DateTimeField(verbose_name='添加时间', default=datetime.now)
update_time = models.DateTimeField(verbose_name='修改时间', null=True)
state = models.IntegerField(verbose_name='状态', default=1)
cat_id = models.ForeignKey(Category, on_delete=models.CASCADE)
t = datetime.now()
cover_map = models.ImageField(verbose_name='缩列图',upload_to='article/%Y/%m/%d',default='1.png',storage=ImageStorage()) class Meta:
verbose_name = '文章'
ordering = ['-add_time'] def __str__(self):
return self.title def delete(self, using=None, keep_parents=False):
print(1111)
django上传图片简单验证以及自动修改图片名称的更多相关文章
- LINQPad_批量修改图片名称
用到这个工具是在后台批量修改图片名称的时候 下载并安装LINQPad. 这里要注意:在复制path路径的时候C:\xampp\htdocs\day01\angularjs_day01_am\angul ...
- MATLAB批量修改图片名称
申明:转载请注明出处. 设在“D:\UserDesktop\pic\”目录下有很多张格式为jpg照片,命名不规则,如图. 现在用MATLAB批量修改所有图片的命名格式,改为1.jpg,2.jpg,.. ...
- asp.net上传图片文件自动修改图片大小代码
#region 图片缩放 /// <summary> /// 图片缩放 /// </summary> /// <param name="savePath&quo ...
- 如何批量修改图片名称(win下)
深度学习目标检测任务中常常需要大量的图片,这些图片一般来自网络爬虫或是自行批量下载,但下载下的图片常常在保存时被命名为长段英文数字混写,因此规律化命名下载的图片数据名称就显得尤为重要了,下面我演示在本 ...
- django图片上传修改图片名称
storage.py # 给上传的图片重命名 from django.core.files.storage import FileSystemStorage from django.http impo ...
- SpringMVC 上传图片保存到服务器 同时更改图片名称保存至数据库
@RequestMapping(value = "/save.do", method = RequestMethod.POST) public String saveDriv ...
- iOS: Xcode7安装KSImageNamed插件,自动读取图片名称
官方文档: ## How do I use it? Build the KSImageNamed target in the Xcode project and the plug-in wil ...
- python批量修改图片名称
import os class BatchRename(): def rename(self): # windows环境 """ os.rename() 方法用于命名文件 ...
- django实现图片上传后自动修改尺寸并保存修改后的图到数据库和本地文件系统
图片上传首先要是设置settings.py文件(与静态文件设置类似) MEDIA_ROOT = os.path.join(BASE_DIR,'media')MEDIA_URL = '/media/' ...
随机推荐
- 在docker中初次体验.net core 2.0
.net core的跨平台有了Linux,不能没有docker……网上的系列文章一大推,特别是docker还有了中文官网:https://www.docker-cn.com/ .上面说的很清楚了,这里 ...
- Linux下使用yum安装软件命令
1.yum list | grep 要下载的文件名字2.yum install 完整文件名字3.rpm -qa | grep 软件名字 //查看版本
- Python之函数参数
# -*- coding: utf-8 -*- """ Created on Fri Sep 7 09:13:50 2018 @author: zhen "&q ...
- django csrf token添加
#views.py from django.shortcuts import render_to_response, RequestContext from django.views.decorato ...
- Win32 Ime
Win32 Ime API: ImmGetContext: 获取指定窗口的当前的输入上下文,然后再尝试访问上下文中的信息.应用程序应该定期使用这个功能获取窗口的当前的输入上下文.若hWnd参数为零,将 ...
- centos7安装docker并设置开机自启以及常用命令
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
- 【spring源码分析】IOC容器初始化(五)
前言:前几篇文章已经将BeanDefinition的加载过程大致分析完成,接下来继续分析其他过程. AbstractApplicationContext#refresh public void ref ...
- 【题解】P2922 [USACO08DEC]秘密消息Secret Message
\(\text{Tags}\) 字典树,统计 题意: 给出两组\(\text{0/1}\)串\(\text{A,B}\),求解\(\text{A}\)中某串是\(\text{B}\)中某串的前缀,和\ ...
- python day09
内存空间管理 1.空间引用计数,垃圾回收机制的依据 --变量的值被引用,该值的引用计数加1 --变量解除绑定,该值的引用计数减1 --如果该值的引用计数为0,就会被自动回收 2.引用计数会出现的循环问 ...
- CentOS7.x安装MySQL5.7.25
mysql 5.7下载地址 社区版下载地址:https://dev.mysql.com/downloads/mysql/ 可能会有变动 找到5.7版本, 注:源码安装需要用到下面的包,可以先忽略,我安 ...