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的Django框架中用流响应生成CSV文件的教程
May 02 Python
解决Python requests 报错方法集锦
Mar 19 Python
详解PyTorch批训练及优化器比较
Apr 28 Python
Python爬虫实现全国失信被执行人名单查询功能示例
May 03 Python
Python获取时间范围内日期列表和周列表的函数
Aug 05 Python
Python 3.6打包成EXE可执行程序的实现
Oct 18 Python
Python数据分析pandas模块用法实例详解
Nov 20 Python
Python 内置变量和函数的查看及说明介绍
Dec 25 Python
Django实现whoosh搜索引擎使用jieba分词
Apr 08 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
Apr 21 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 Python
Python中zip函数如何使用
Jun 04 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
PHP session会话操作技巧小结
2016/09/27 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
JS复制到剪贴板示例代码
2013/10/30 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
bootstrap改变按钮加载状态
2014/12/01 Javascript
JavaScript错误处理
2015/02/03 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
2017/07/13 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
vue-router+nginx 非根路径配置方法
2018/06/30 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
在Linux下调试Python代码的各种方法
2015/04/17 Python
python计算圆周率pi的方法
2015/07/11 Python
Django中传递参数到URLconf的视图函数中的方法
2015/07/18 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
行政助理求职自荐信
2013/10/26 职场文书
工程资料员岗位职责
2014/03/10 职场文书
个人贷款担保书
2014/04/01 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
详解Redis瘦身指南
2021/05/26 Redis