一般在开发中,有的网站存在大量图片,首先图片的名称是不能重复的,

但是除了数据库可用的id以外我们可以用time模块中time.time()获取的时间来进行md5加密操作

因为time模块所产生的时间的精度为亚秒级,是不会发生重复的情况

1.这里封装了md5的加密字符,导入setting.py的静态文件目录(路径拼接时需要)

   from stu_entry.settings  import STATICFILES_DIRS
   import time  
   import hashlib #md5所用的hashlib模块
   import os    def md5(str_):
     md = hashlib.md5()  #创建md5对象
     md.update(str_.encode()) #生成加密字符
     return md.hexdigest() #返回的是加密后的字符

(声明):首先我们用表单获取前端传输过来的文件名称,我用的ajax传输,为什么不正常获取文件呢,因为那样太low了!

2.这里就用到了time.time()获取当时时间,传入封装后的md5函数,这时的结果就为加密后的md5字符。

3.原图片的名字不要了,因为我们有md5字符作前缀,所以用split把字符串分割只要后面的。

4.然后这里我们要拼接一下路径,os的路径拼接把前面的文件路径带上所以我们这时需要静态文件下img的路径,

这里直接取setting.py 的静态文件就可以。

5.这里写图片需要判断下文件是否大于2.5M,如果大于我们就迭代写入,否则直接用read()储存

 path = request.FILES.get('表单name值')
now = time.time()
pa_md = md5(str(now))
wf = path.name.split('.')[-1]
f = os.path.join(STATICFILES_DIRS[0],'img/',pa_md +'.'+wf )
if path.multiple_chunks:
with open(f,'wb') as hf:
for buf in path.chunks():
hf.write(buf)
else:
hf.write(path.read())

Django中web开发用md5加密图片名并存储静态文件夹的更多相关文章

  1. [Python] 利用Django进行Web开发系列(一)

    1 写在前面 在没有接触互联网这个行业的时候,我就一直很好奇网站是怎么构建的.现在虽然从事互联网相关的工作,但是也一直没有接触过Web开发之类的东西,但是兴趣终归还是要有的,而且是需要自己动手去实践的 ...

  2. [Python] 利用Django进行Web开发系列(二)

    1 编写第一个静态页面——Hello world页面 在上一篇博客<[Python] 利用Django进行Web开发系列(一)>中,我们创建了自己的目录mysite. Step1:创建视图 ...

  3. Nginx+Python+uwsgi+Django的web开发环境安装及配置

    Nginx+Python+uwsgi+Django的web开发环境安装及配置 nginx安装 nginx的安装这里就略过了... python安装 通常系统已经自带了,这里也略过 uwsgi安装 官网 ...

  4. 利用Django进行Web开发

    Web就是用来表示Internet主机上供外界访问的资源的.网页也统称为web资源.Internet上供外界访问的Web资源主要分为如下两类: 静态web资源:指web页面中供人们浏览的数据始终是不变 ...

  5. pycharm+python+Django之web开发环境的搭建(windows)

    转载:https://blog.csdn.net/yjx2323999451/article/details/53200243/ pycharm+python+Django之web开发环境的搭建(wi ...

  6. PyCharm社区版+Django搭建web开发环境-2

    接上一篇:PyCharm社区版+Django搭建web开发环境-1 1. 创建好django项目并建立app应用:web 2. setting.py:配置app应用 INSTALLED_APPS = ...

  7. 使用eclipse搭建第一个python+Django的web开发实例

    python+Django的web开发实例   一.创建一个项目如果这是你第一次使用Django,那么你必须进行一些初始设置.也就是通过自动生成代码来建立一个Django项目--一个Django项目的 ...

  8. Eclipse中的工程引入jar包后没有整合到一个文件夹而是全部在根目录下显示

    Eclipse中的工程引入jar包后没有整合到一个文件夹而是全部在根目录下显示 解决方案: 1,在Eclipse中,点击window-->Preferences-->Java-->B ...

  9. python +Django 搭建web开发环境初步,显示当前时间

    1.python 的安装 网上很多关于django跟python 开发的资料,这块我正在实习准备用这个两个合起来搞一个基于web 的东西出来现在开始学习,写点东西记录一下心得. 开发环境是window ...

随机推荐

  1. Centos7 安装 scrapy

    Centos7 安装 scrapy ( *:此python版本为 2.7 ) 1.先安装 python (2.7) 在安装 scrapy 要先安装 python 和 pip,  链接:https:// ...

  2. Stm32型号查阅手册

  3. 【转载】Vue自定义指令实现pc端加载更多

    转载来源:https://www.86886.wang/detail/5a6f19e644f9da55274c3bbd,谢谢作者分享! 原理 document.documentElement.scro ...

  4. Python-Django 路由控制器

    1 路由的基本使用: # url是个函数,有四个参数,第一个参数要传正则表达式,第二参数传函数内存地址,第三个参数传默认参数,第四个是路由的别名 url(r'^liuqingzheng/article ...

  5. Thymleaf中th:each标签遍历list如何获取index

    简单介绍:传递给后台一个String类型的list,需要获取到list的每一个元素,然后进行筛选,得到正确的文本值,看代码就明白了 代码: //后台java代码//failList是一个String类 ...

  6. mac os安装shell man中文帮助工具(manpages-zh),即man命令显示中文帮助文档

    一.从官网(http://pkgs.fedoraproject.org/repo/pkgs/man-pages-zh-CN)下载安装包:或者从开源代码(https://github.com/man-p ...

  7. python-argparse批量修改后缀名-batch_file_rename.py

    #!/bin/usr/env python3 __author__ = 'nxz' import os import argparse def batch_rename(work_dir, old_e ...

  8. EChart 文字大小调整 饼状图为例

    一.EChart图中的文字调整(以饼图为例) 二.源码: { "title": { "text": "", "subtext&qu ...

  9. [C#.Net]全局钩子实现USB扫码枪无焦点状态下扫入

    https://www.cnblogs.com/masonlu/p/10105135.html

  10. 无法执行该VI,必须使用LabVIEW完整版开发系统才可以解决该错误

    该错误99%是因为你在某个vi中使用了外部系统组件,比如api,.net组件,ActiveX组件,com组件,所有不是Labview原生的接口,在你打包后,在其他没有安装这些组件的电脑上运行,就会出现 ...