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)模式是一种为了解决面向对象与关系数据 ...
随机推荐
- lua 环境揭秘
什么是环境? http://www.lua.org/manual/5.1/manual.html#2.9 Besides metatables, objects of types thread, fu ...
- DuiLib事件分析(一)——鼠标事件响应
最近在处理DuiLib中自定义列表行元素事件,因为处理方案得不到较好的效果,于是只好一层一层的去剥离DuiLib事件是怎么来的,看能否在某一层截取消息,自己重写. 我这里使用CListContaine ...
- 由FutureTask的get方法靠什么机制来阻塞引发的思考
1. FutureTask的get方法靠什么机制来阻塞 看其get方法源码: /** * @throws CancellationException {@inheritDoc} */ public V ...
- Java -- 在Eclipse上使用Hibernate
最近一个项目要用Java做,一点都不熟啊.没办法,只好硬着头皮啃了,花了大半天的时间,终于在Eclipse上完成了第一个Hibernate例子.下面记录关键的步骤,权作笔记,以备日后查看. (1)下载 ...
- Matlab的XTickLabel中数值带下标
%axis为'x'或'y',分别表示更改x或y刻度 %ticks是字符cell function settick(axis,ticks) n=length(ticks); tkx=get(gca,'X ...
- paper 96:计算机视觉-机器学习近年部分综述
计算机视觉和机器学习领域 近两年部分综述文章,欢迎推荐其他的文章,不定期更新. [2015] [1]. E.Sariyanidi, H. Gunes, A. Cavallaro, Aut ...
- 权限获取异常(不能用ModuleId,得换个名字)目前还没搞清楚为啥
CenterController: /// <summary> /// 访问模块,写入系统菜单Id /// </summary> /// <param name=&quo ...
- jq 解析josn字符串
1. var obj = jQuery.parseJSON("${ruleModel.rules}"); 2. var obj = eval("("+" ...
- 【001:转载 eclipse中颜色的设置】
转自于:http://www.cnblogs.com/arci/archive/2011/01/23/1942646.html Eclipse颜色设置 参考配色方案: http://www.cs.cm ...
- confluence重置admin密码
复方法: 1. 运行此sql 找到你的管理员帐户: select u.id, u.user_name, u.active from cwd_user u join cwd_membership m o ...