实现简单的django上传文件
本文用django实现上传文件并保存到指定路径下,没有使用forms和models,步骤如下:
1、在模板中使用form表单,因为这个表单使用于上传文件的,所以method属性必须设置为post,而且enctype必须设置为"multipart/form-data",这个表明不对字符进行编码,代码如下:
<form enctype="multipart/form-data" action="/upLoadFile/" method="post">
<input type="filename" name="ufile" />
<br/>
<input type="submit" value="上传"/>
</form>
2、设置urls.py文件,在点击上传按钮时,指定实现上传功能的视图函数,代码如下:
url(r'^upLoadFile/$', upload_file, name='upload_file'),
3、实现视图函数,虽然文件是通过post方式上传的,但文件并不存在request.POST中,而是存放在request.FILES中,所以使用request.FILES["ufile"]或request.FILES.get("ufile", "")来获取上传文件,代码如下:
def upload_file(request):
if not request.method == "POST":
return HttpResponse("请使用POST提交!")
else:
my_file = request.FILES.get("upload_file", None) # 获取上传的文件,如果没有文件,则默认为None
if not my_file:
return HttpResponse("No files for upload!")
else:
destination = open(os.path.join("/data/upload", my_file.name), 'wb+') # 打开特定的文件进行二进制的写操作
for chunk in my_file.chunks(): # 分块写入文件
destination.write(chunk)
destination.close()
return HttpResponse("上传成功!")
4、测试,点击选择上传文件,点击上传,页面显示"上传成功",在/data/upload目录下面找到上传的文件,至此,最简单的用django上传文件就完成了。
实现简单的django上传文件的更多相关文章
- (转)django上传文件
本文转自:http://www.cnblogs.com/linjiqin/p/3731751.html 另: 本文对原文做了适当修改 更为详细的介绍可以参考官方文档. emplate html(模板 ...
- django上传文件
template html(模板文件): <form enctype="multipart/form-data" method="POST" action ...
- $Django ajax简介 ajax简单数据交互,上传文件(form-data格式数据),Json数据格式交互
一.ajax 1 什么是ajax:异步的JavaScript和xml,跟后台交互,都用json 2 ajax干啥用的?前后端做数据交互: 3 之前学的跟后台做交互的方式: -第一种:在浏览器 ...
- Django上传文件和上传图片(不刷新页面)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Django上传文件的那些参数
# ################## 默认文件上传配置 ######################## from django.core.files.uploadhandler import M ...
- 20-1 django上传文件和项目里上传头像如何查看
一 普通上传方式 1 views def upload(request): if request.method == "POST": # print(request.POST) # ...
- Django上传文件的两种方式
基于form表单上传文件 HTML <h3>基于form表单的上传文件</h3> <form action="" method="post& ...
- 【python】django上传文件
参考:https://blog.csdn.net/zahuopuboss/article/details/54891917 参考:https://blog.csdn.net/zzg_550413470 ...
- Python - Django - 上传文件
upload.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
随机推荐
- 大数据笔记09:大数据之Hadoop的HDFS使用
1. HDFS使用: HDFS内部中提供了Shell接口,所以我们可以以命令行的形式操作HDFS
- Linux常用命令之 查找命令 find(一)
我们都知道在Linux中有着上千条的命令,而常用命令不过百条. 我们也知道在Linux里面“一切皆文件”,那么如何能够快速的找到你想要找的东西就显得尤为重要. find是Linux里面最重要的命令之一 ...
- oracle 配置服务端
oracle 配置服务端,类似我们配置java环境一样 防止乱码的配置: 变量名:NLS_LANG 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 选择数据库的配置(重要) ...
- [C#]asp.net开发微信公众平台----目录汇总-持续更新
1.[c#]asp.net微信公众平台开发(1)数据库设计 2.[c#]asp.net微信公众平台开发(2)多层架构框架搭建和入口实现 3.[c#]asp.net微信公众平台开发(3)微信消息封装及反 ...
- C3P0连接池配置方式
c3p0的配置方式分为三种,分别是 1.setters一个个地设置各个配置项 2.类路径下提供一个c3p0.properties文件 3.类路径下提供一个c3p0-config.xml文件 1.set ...
- linux 定时执行shell脚本
转自:http://blog.csdn.net/jingxiangren/article/details/4745631 在oracle 中可以利用dbms_job包定时执行pl/sql.sql过程, ...
- UVALive - 5116
dfs n以内所有素数的乘积map或set删多余的,有点思维在里面,就写写
- traceroute小结 come from CSDN author:houdong
traceroute程序可以使我们看到IP数据报从一台主机传到另一台主机的所经过的路由,并且可以使用IP源站路由选项. traceroute取代IP RR的原因 1 不是所有的路由器都支持IP RR选 ...
- struts2中<s:select/>标签的运用详解
<s:select list="smsTypes" listKey="SmsTypeId" listValue="SmsTypeName&quo ...
- List容器
List 容器 list是C++标准模版库(STL,Standard Template Library)中的部分内容.实际上,list容器就是一个双向链表,可以高效地进行插入删除元素. 使用list容 ...