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 中文乱码问题深入分析
Mar 13 Python
python简单实现计算过期时间的方法
Jun 09 Python
详解Python之数据序列化(json、pickle、shelve)
Mar 30 Python
用python写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
解决Mac安装scrapy失败的问题
Jun 13 Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 Python
python找出完数的方法
Nov 12 Python
Python字典循环添加一键多值的用法实例
Jan 20 Python
pytorch 自定义卷积核进行卷积操作方式
Dec 30 Python
python标识符命名规范原理解析
Jan 10 Python
Python读取Excel一列并计算所有对象出现次数的方法
Sep 04 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 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
通过文字传递创建的图形按钮
2006/10/09 PHP
php递归使用示例(php递归函数)
2014/02/14 PHP
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
php更新cookie内容的详细方法
2019/09/30 PHP
JS与C#编码解码
2013/12/03 Javascript
jquery加载图片时以淡入方式显示的方法
2015/01/14 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
2016/01/28 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
基于python及pytorch中乘法的使用详解
2019/12/27 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
Bailey帽子官方商店:Bailey Hats
2018/09/25 全球购物
阿巴庭院:Abba Patio
2019/06/18 全球购物
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
商务主管岗位职责
2013/12/08 职场文书
物业经理自我鉴定
2014/03/03 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
医院节能减排方案
2014/06/13 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
舞蹈社团活动总结
2015/05/07 职场文书
table不让td文字溢出操作方法
2022/12/24 HTML / CSS