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)模式是一种为了解决面向对象与关系数据 ...
随机推荐
- pptp记录日志
/etc/ppp/ip-up #!/bin/bash # This file should not be modified -- make local changes to # /etc/ppp/ip ...
- sp_executesql
execute相信大家都用的用熟了,简写为exec,除了用来执行存储过程,一般都用来执行动态Sql sp_executesql,sql2005中引入的新的系统存储过程,也是用来处理动态sql的, 如 ...
- 关于IP地址的一个细节问题
使用ip2long()和long2ip()函数把IP地址转成整型存放进数据库而非字符型.这几乎能降低1/4的存储空间.同时可以很容易对地址进行排序和快速查找;
- python实现指定目录下JAVA文件单词计数的多进程版本
要说明的是, 串行版本足够快了, 在我的酷睿双核 debian7.6 下运行只要 0.2s , 简直是难以超越. 多进程版本难以避免大量的进程创建和数据同步与传输开销, 性能反而不如串行版本, 只能作 ...
- 161215、MySQL 查看表结构简单命令
一.简单描述表结构,字段类型desc tabl_name;显示表结构,字段类型,主键,是否为空等属性,但不显示外键.二.查询表中列的注释信息select * from information_sche ...
- lucene5.5 field
lucene常见Field IntField 主要对int类型的字段进行存储,需要注意的是如果需要对InfField进行排序使用SortField.Type.INT来比较,如果进范围查询或过滤,需要采 ...
- ipcs命令
unix/linux下的共享内存.信号量.队列信息管理 在unix/linux下,经常有因为共享内存.信号量,队列等共享信息没有干净地清楚而引起一些问题. 查看共享信息的内存的命令是ipcs [-m| ...
- MapReduce的模式、算法和用例
英文原文:<MapReduce Patterns, Algorithms, and Use Cases> https://highlyscalable.wordpress.com/2012 ...
- 3D数学基础学习之向量一
向量-数学定义 对数学家而言,向量就是一个数字列表,对程序员而言则是另一种相似的概念,数组. 向量-几何定义 a.向量的大小就是向量的长度(模),向量的长度非负 b.向量的方向描述了空间中向量的指向. ...
- minicom 使用教程
因为现在电脑基本不配备串行接口,所以,usb转串口成为硬件调试时的必然选择.目前知道的,PL2303的驱动是有的,在dev下的名称是ttyUSB#. minicom,tkterm都是linux下应用比 ...