django 通过URL访问上传的文件方法


Posted in Python onJuly 28, 2019

Django2.0 通过URL访问上传的文件(pdf、picture等)

Django是一个成熟的web框架,基于python实现,有很多的优点,很容易快速上手(详见官网:https://www.djangoproject.com/)的文档,Django2.0的文档有1872页,不得不说是非常全的,文档是可谓包罗万象。

Django给我的感觉是很好很强大,至少比flask要完整的多,如果实现一个简单的需求,flask足够了,不过要安装各种依赖包,一个字繁琐!而Django则集成了非常非常全的功能,不一一讨论吧,下面聊一下我遇到的问题及解决的办法,从网上找了很久很久,始终难以有一个完整的方法,立此存照吧。

问题:Django上传文件很容易,那么,如何在网页中通过链接的方式访问(打开文件、预览图片、rar)文件呢?

准备环境

django 通过URL访问上传的文件方法

首先是开发环境的搭建:Python、Django、pycharm、mysql的安装(略过,网上有很多教程)

在pycharm中创建Django的工程,其目录结构如下:

说明:

Resource_Management_System是工程目录

rms是Django中app的目录(存放业务代码的地方)

在Resource_Management_System目录,新建了media目录和media的子目录upload(用于存储上传的各种文件,实际中可能要对目录再进行规划)

上传文件

Python上传文件的代码,为了简单起见,直接在app的views.py中书写上传文件的代码,如下:

django 通过URL访问上传的文件方法

说明:

上传文件使用的是POST请求,文件的KEY值是“test.shlian”

通过request.FILE.get()取到上传的文件对象

39-42行,是具体的写文件代码,把文件写到MEDIA_ROOT目录的upload目录

43-44行,返回结果。

由于是示例,所以代码简单,没有做任何的异常处理。

写完代码以后,还不能通过url上传文件,需要做如下的配置:

配置settings.py,增加上面代码使用的MEDIA_ROOT和后面即将使用的MDEIA_URL变量,如下:

django 通过URL访问上传的文件方法

一切就绪,通过url上传文件的配置:

django 通过URL访问上传的文件方法

完成上述配置以后,打开cmd命令行窗口,切换到Resource_Management_System目录,执行命令:“python manage.py runserver 127.0.0.1:8000”,如果没有错误,会出现下面的界面:

django 通过URL访问上传的文件方法

至此,基于Django框架的支持文件上传的app,已经成功启动了。

通过postman测试文件上传

打开postman,完成如下配置,并点击”Send”,发送POST请求,

django 通过URL访问上传的文件方法

上传成功后的显示:

django 通过URL访问上传的文件方法

切换到setting.MEDIA_ROOT目录,显示如下:

django 通过URL访问上传的文件方法

恭喜!文件上传成功!接下来,讨论另外一个问题:如何通过URL访问上传的这个PDF文件呢?

通过URL访问上传的pdf文件(当然也可以访问其他类型的文件),主要是Django的配置了,主要是配置工程的urls.py文件,配置如下:

django 通过URL访问上传的文件方法

说明:

Import 19-21行的库

增加25行,到urlpatterns,

通过浏览器打开上传的文件:

django 通过URL访问上传的文件方法

再看一下上传的png文件:

django 通过URL访问上传的文件方法

以上这篇django 通过URL访问上传的文件方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python制作简单的朴素基数估计器的教程
Apr 01 Python
python写入xml文件的方法
May 08 Python
Python自动化开发学习之三级菜单制作
Jul 14 Python
python+pyqt5编写md5生成器
Mar 18 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
Python 一行代码能实现丧心病狂的功能
Jan 18 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
python读取excel进行遍历/xlrd模块操作
Jul 12 Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 Python
Pycharm配置lua编译环境过程图解
Nov 28 Python
Python hashlib和hmac模块使用方法解析
Dec 08 Python
python反编译教程之2048小游戏实例
Mar 03 Python
django使用admin站点上传图片的实例
Jul 28 #Python
Python中变量的输入输出实例代码详解
Jul 28 #Python
对django中foreignkey的简单使用详解
Jul 28 #Python
解决django 新增加用户信息出现错误的问题
Jul 28 #Python
Django使用Channels实现WebSocket的方法
Jul 28 #Python
Django实现web端tailf日志文件功能及实例详解
Jul 28 #Python
Python assert语句的简单使用示例
Jul 28 #Python
You might like
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
深入理解javascript原型链和继承
2014/09/23 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
package.json配置文件构成详解
2019/08/27 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
[01:52]2014DOTA2西雅图邀请赛 V社开大会你不知道的小秘密
2014/07/08 DOTA
python访问系统环境变量的方法
2015/04/29 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
python实现IOU计算案例
2020/04/12 Python
Java如何获得ResultSet的总行数
2016/09/03 面试题
法务专员岗位职责
2014/01/02 职场文书
在校大学生个人的自我评价
2014/02/13 职场文书
通用自荐信范文
2014/03/14 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
财务工作检讨书
2014/10/29 职场文书
2014年民政工作总结
2014/11/26 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
2015年教师节活动总结
2015/03/20 职场文书
Python爬取某拍短视频
2021/06/11 Python