django中上传图片的写法(转)
view参数
@csrf_exempt
def before_upload_avatar(request):
before = True
return render_to_response('accounts/before_upload_avatar.html',
{'before': before},
context_instance=RequestContext(request))
配置的url(r'^upload_avatar/$', views.before_upload_avatar, name='prepare_upload'),
在html中写
{% extends "base2.html" %}
{% block head_css %}
<link href="/static/media/css/register.css?v=0.9" rel="stylesheet" type="text/css" />
{% endblock %}
{% block content %}
<div class="change_avatar">
<h4>请选择头像上传</h4>
<form enctype="multipart/form-data" method="POST" action="{% url 'accounts:uploaded' %}">
<input type="file" name="select"/>
<button>Submit</button>
</form>
{% if not before %}
{% if error %}
error info:
{% for info in error %}
<h3>{{ info }}</h3>
{% endfor %}
{% endif %}
{% if not error %}
<img src="{{ path }}" width="128" height="128">
{% endif %}
{% endif %}
</div>
{% endblock %}
选择好文件点击submit后提交到accounts中的uploaded处理
关键注释:
491、492:装饰器:需要登录,免去post的csrf验证
497:判断是否选定文件
498:获得上传文件
500:设定图片路径
501:获得ret,用handle_upload_avatar处理
513:设定文件不能大于5M以及文件不能是exe格式文件。
515:对头像进行处理,返回一个List
519,520:假设路径不存在,创建目录
521-523:对文件重命名
524-526:移除原先头像
527:将新文件拷贝过去
530:返回页面
545:设置temp_nane,用时间和随机数来命名
546:设置temp_path
547:打开temp_path并对其进行读写
548,549:将头像上传到这个路径
551:获取上传图片类型例如jpg,png等
552-554:假如不是图片类型文件,移除文件并报错
555:返回1,文件类型,2,temp_name,3,temp_path
django中上传图片的写法(转)的更多相关文章
- django中上传图片的写法
view参数 @csrf_exemptdef before_upload_avatar(request): before = True return render_to_response( ...
- Django中上传图片---避免因图片重名导致被覆盖
上一篇文章中(https://www.cnblogs.com/lutt/p/10640412.html),我们以图片文件夹+图片名字的方式来储存图片,这样的做法会导致有重名的图片会导致之前的图片被覆盖 ...
- django中的ORM与 应用与补充
目录 django中的ORM与 应用与补充 ORM与数据的对应关系 ORM 常用字段 ORM 其他字段 自定义字段 字段参数 Model Meta参数 常用13中查询(必会) 单表查询的双下划线应用 ...
- Django中ORM介绍和字段及其参数
ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...
- Django中ORM介绍
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...
- Django中怎么做图片上传--图片展示
1.首先是html页面的form表单的三大属性,action是提交到哪,method是提交方式,enctype只要有图片上传就要加这个属性 Django框架自带csrf_token ,所以需要在前端页 ...
- Django中ORM介绍和字段及字段参数
Object Relational Mapping(ORM) 1 ORM介绍 1.1 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对 ...
- django中的CBV
CBV介绍 我们在写一个django项目时,通常使用的都是FBV(function base views) 而CBV(class base views)也有它自己的应用场景,比如在写一个按照rest规 ...
- django中的ORM介绍和字段及字段参数
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...
随机推荐
- mac 升级vim
首先,要下载vim的源代码.Vim source archives : vim online,下载7.4的新建一个目录用于安装vim 7.4:sudo mkdir /usr/local进入源代码的sr ...
- Tomcat8启动报there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache
09-Dec-2016 10:57:49.150 WARNING [localhost-startStop-1] org.apache.catalina.webresources.Cache.getR ...
- JAVA线程池原理详解一
线程池的优点 1.线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用. 2.可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃. 线 ...
- 获取Python安装目录
>>> import sys>>> path=sys.executable>>> print (path)C:\Users\jumz-G\AppD ...
- Js原生 双向数据绑定
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- W3cshool之JavaScript基础
1. JavaScript 对大小写敏感 名为 "myfunction"的函数和名为 "myFunction" 的函数是两个不同的函数,同样,变量 & ...
- volatile使用详解
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”:与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少, ...
- 数据库的Index Scan V.S. Rscan
一直在做performance,但直到今天才完成了这个第一天应该完成的图,到底Index scan和Rscan的分界点在哪里? 如下图所示,很简单的一个查询,只是查询int,分别强制走索引和表扫描 ...
- Swift数据类型简介(二)
整数 整数就是没有小数部分的数字,比如42和-23.整数可以是有符号(正.负.零)或者无符号(正.零). Swift 提供了8,16,32和64位的有符号和无符号整数类型.这些整数类型和 C 语言的命 ...
- [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
环境: 操作系统:64位WIN7 数据库:SQL Server 2000 SP1 开发语言:J2EE 在Servlet连接数据库时出错提示: [Microsoft][ODBC 驱动程序管理器 ...