Django之文件上传
一、form表单上传文件
注意:
1、form上需要加enctype="multipart/form-data"
2、form提交的地址需要以/结尾
def form_file(request): if request.method=="POST": file = request.FILES.get("file") with open(file.name,"wb") as f: for chunk in file.chunks(): f.write(chunk) return render(request,"form_file.html",locals())
<form method="post" action="/form_file/" enctype="multipart/form-data"> {% csrf_token %} <p><input type="file" name="file"></p> <p><input type="submit"></p> </form>
上传头像,用默认头像替换选择文件按钮:
<p> {{ obj.img.label }} <label for="img"><img src="/static/img/default.png"></label> <input id="img" type="file" name="img"> </p>
二、ajax上传文件
def register(request): if request.method == "POST": form_obj = RegisterForm(request.POST) ret = {"status": 0, "msg": ""} if form_obj.is_valid(): form_obj.cleaned_data.pop("re_pwd") avatar = request.FILES.get("avatar") models.UserInfo.objects.create(**form_obj.cleaned_data,avatar=avatar) return JsonResponse(ret) else: ret["status"] = 1 ret["msg"] = form_obj.errors return JsonResponse(ret) form_obj = RegisterForm() return render(request,"register.html",locals())
//ajax上传注册信息并获取错误信息 $("#register-btn").click(function(){ //ajax上传文件,data部分必须用对象 var formData = new FormData(); formData.append("username",$("#id_username").val()); formData.append("password",$("#id_password").val()); formData.append("re_pwd",$("#id_re_pwd").val()); formData.append("email",$("#id_email").val()); formData.append("avatar",$("#id_avatar")[0].files[0]); formData.append("csrfmiddlewaretoken",$("[name='csrfmiddlewaretoken']").val()); $.ajax({ url:"/register/", type:"post", //ajax上传文件需要加两个参数 processData:false, contentType:false, data:formData, success:function(data){ if(data.status){ //如果有错误,则返回错误信息 $.each(data.msg,function(k,v){ //k是键,v是值,但是v是列表,错误信息可能有多个 $("#id_"+k).next("span").text(v[0]).parent().parent().addClass("has-error"); }) }else{ //如果没有错误,则跳转到指定页面 location.href = "/login/" } } }) }) //输入框取得焦点时,清楚错误信息 $("form input").focus(function(){ $(this).next("span").text("").parent().parent().removeClass("has-error"); });
三、iframe上传文件
Django之文件上传的更多相关文章
- python Django之文件上传
python Django之文件上传 使用Django框架进行文件上传共分为俩种方式 一.方式一 通过form表单进行文件上传 #=================================== ...
- day56:django:csrf_token&文件上传
目录 1.csrf介绍 2.django实现csrf_token认证 3.django实现文件上传 csrf介绍 什么是csrf? csrf:跨站请求伪造.攻击者通过HTTP请求将数据传送到服务器,从 ...
- Django(十七)文件上传
http://www.cnblogs.com/wupeiqi/articles/5703697.html - 文件上传 - 普通上传 - 自定义页面上传按钮 ...
- 框架----Django之文件上传
一.文件上传 1. 浏览器访问 http://127.0.0.1:8000/f1/ http://127.0.0.1:8000/f2/ 2. urls from django.conf.urls im ...
- Django的文件上传以及预览、存储
思路: 文件上传通过前端的input标签,input设置display:none属性. 内容显示需要让前端通过<img>标签读取图片内容,可以通过<label>标签连接< ...
- Django实现文件上传功能
文件上传 关注公众号"轻松学编程"了解更多. 1.创建上传文件夹 在static文件夹下创建uploads用于存储接收上传的文件 在settings中配置,MEDIA_ROOT=o ...
- Django普通文件上传
前端代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- django 的文件上传
template html(模板文件): <form enctype="multipart/form-data" method="POST" action ...
- Django处理文件上传File Uploads
HttpRequest.FILES 表单上传的文件对象存储在类字典对象request.FILES中,表单格式需为multipart/form-data <form enctype="m ...
随机推荐
- matlab读取cvs文件的几种方法
matlab读取CVS文件的几种方法: 1,实用csvread()函数 csvread()函数有三种使用方法: 1.M = csvread('filename')2.M = csvread('fi ...
- GIL全局解释器锁
1. 什么是GIL全局解释器锁 GIL本质就是一把互斥锁,相当于执行权限,每个进程内都会存在一把GIL,同一进程内的多个线程 必须抢到GIL之后才能使用Cpython解释器来执行自己的代码,即 ...
- drawer
import 'package:flutter/material.dart'; class DrawerPage extends StatefulWidget { @override _DrawerP ...
- Strem_01
import 'package:flutter/material.dart';import 'dart:async';import 'dart:ui'; void main()=>runApp( ...
- Java面试准备之探究源码
摘要:之前虽然对集合框架一些知识点作了总结,但是想想面试可能会问源码,于是又大致研究了一下集合框架的一些实现类的源码,在此整理一下. 一.集合框架 二.深究实现类 1.ArrayList源码实现 Ar ...
- Kubernetes的本质
在前面的四篇文章中,我以 Docker 项目为例,一步步剖析了 Linux 容器的具体实现方式.通过这 些讲解你应该能够明白:一个“容器”,实际上是一个由 Linux Namespace.Linux ...
- Pyspark 使用 Spark Udf 的一些经验
起初开始写一些 udf 的时候感觉有一些奇怪,在 spark 的计算中,一般通过转换(Transformation) 在不触发计算(Action) 的情况下就行一些预处理.udf 就是这样一个好用的东 ...
- js 实现数据结构 -- 栈
原文: 在 Javascript 中学习数据结构与算法. 概念: 栈是一种遵从先进后出 (LIFO) 原则的有序集合:新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端为栈底.在栈里,新元素都靠 ...
- springdata 动态查询 是用来查询的 仅提供查询功能
springdata 动态查询 是用来查询的 仅提供查询功能
- mongoDB 其他数据类型
时间 类型 获取当前时间 new Date() 自动生成当前时间(国际标准时间) db.class.insertOne({book:"数学",date:new Date()}) D ...