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中上传图片的写法(转)的更多相关文章

  1. django中上传图片的写法

    view参数 @csrf_exemptdef before_upload_avatar(request):    before = True    return render_to_response( ...

  2. Django中上传图片---避免因图片重名导致被覆盖

    上一篇文章中(https://www.cnblogs.com/lutt/p/10640412.html),我们以图片文件夹+图片名字的方式来储存图片,这样的做法会导致有重名的图片会导致之前的图片被覆盖 ...

  3. django中的ORM与 应用与补充

    目录 django中的ORM与 应用与补充 ORM与数据的对应关系 ORM 常用字段 ORM 其他字段 自定义字段 字段参数 Model Meta参数 常用13中查询(必会) 单表查询的双下划线应用 ...

  4. Django中ORM介绍和字段及其参数

    ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...

  5. Django中ORM介绍

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

  6. Django中怎么做图片上传--图片展示

    1.首先是html页面的form表单的三大属性,action是提交到哪,method是提交方式,enctype只要有图片上传就要加这个属性 Django框架自带csrf_token ,所以需要在前端页 ...

  7. Django中ORM介绍和字段及字段参数

    Object Relational Mapping(ORM) 1 ORM介绍 1.1 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对 ...

  8. django中的CBV

    CBV介绍 我们在写一个django项目时,通常使用的都是FBV(function base views) 而CBV(class base views)也有它自己的应用场景,比如在写一个按照rest规 ...

  9. django中的ORM介绍和字段及字段参数

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

随机推荐

  1. Maven聚合与继承的实例讲解(二)

    继续上一节讲Maven的内容,我们这个节继续讲Maven继承和聚合的其他内容.    现在我们新建一个实例来测试Maven有关于聚合的部分     测试开始 一.建立以pom为packaging的项目 ...

  2. AngularJS安装配置与基础概要整理(上)

    以前整理的,可供参考. 安装: 1.首先要安装node.js和它的npm包管理系统.(nodejs相关待整理) 2.安装grunt .grunt是一个基于任务的Javascript工程命令行构建工具. ...

  3. angular懒加载的一些坑

    写在前面 最近在工作中接触到angular模块化打包加载的一些内容,感觉中间踩了一些坑,在此标记一下. 项目背景: 项目主要用到angularJs作为前端框架,项目之前发布的时候会把所有的前端脚本打包 ...

  4. javascript 事件的一点感悟

    javascript 冒泡事件的理解一般是这样的: 比方页面上有一个BODY里面包含一个DIV,DIV中包含一个BUTTON.在BODY,DIV,BUTTON中都有一个ONCLICK事件,在BUTTO ...

  5. windows系统调用 获取当前内存信息

    #include "iostream" #include "windows.h" #include "shlwapi.h" #include ...

  6. Cannot use object of type yii\db\Connection as array

    $pointLog = $conn->createCommand('select * from table1 where is_deleted = 0 AND id1 = :id1 AND id ...

  7. 中国电信大亚DP607光猫破解,设置路由,wifi!关闭远程管理,改连接限制,SN码查询!

    破解方法:以下为破解方法(一):1.进入192.168.1.12.用户名输入anonymous,密码不用,登陆3.输入网址192.168.1.1/backupsettings.conf4.用记事本打开 ...

  8. Robotium自动化测试框架实用教程(图)

    一.简介 Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击.长按.滑动等).查找和断言机制的API,能够对各 ...

  9. Web Servic和Web API的区别

    Web Service:1.它是基于SOAP协议的,数据格式是XML2.只支持HTTP协议3.它不是开源的,但可以被任意一个了解XML的人使用4.它只能部署在IIS上Web API:1.这是一个简单的 ...

  10. [attribute=value] 匹配给定的属性是某个特定值的元素

    描述: 查找所有 name 属性是 newsletter 的 input 元素 HTML 代码: <input type="checkbox" name="news ...