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 20 Python
解析Python中的异常处理
Apr 28 Python
Python实现读取文件最后n行的方法
Feb 23 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
Mar 04 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
Apr 11 Python
Python 使用 prettytable 库打印表格美化输出功能
Dec 26 Python
如何基于Python创建目录文件夹
Dec 31 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
May 18 Python
Python使用文件操作实现一个XX信息管理系统的示例
Jul 02 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 Python
python爬虫搭配起Bilibili唧唧的流程分析
Dec 01 Python
Python快速实现一键抠图功能的全过程
Jun 29 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
1 Tube Radio
2021/03/02 无线电
用PHP将数据导入到Foxmail
2006/10/09 PHP
一些 PHP 管理系统程序中的后门
2009/08/05 PHP
解析strtr函数的效率问题
2013/06/26 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
基于jquery的button默认enter事件(回车事件)。
2011/05/18 Javascript
extjs render 用法介绍
2013/09/11 Javascript
JS画线(实例代码)
2013/11/20 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
[00:37]2016完美“圣”典风云人物:rOtk宣传片
2016/12/09 DOTA
Python的装饰器用法学习笔记
2016/06/24 Python
Sanic框架异常处理与中间件操作实例分析
2018/07/16 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
Python实现线性插值和三次样条插值的示例代码
2019/11/13 Python
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
潘多拉珠宝英国官方网上商店:PANDORA英国
2018/06/12 全球购物
人事部主管岗位职责
2013/12/26 职场文书
房屋过户委托书范本
2014/10/07 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
入党积极分子党支部意见
2015/06/02 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
月考总结与反思
2015/10/22 职场文书
运动会主持人开幕词
2016/03/04 职场文书
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL
git中cherry-pick命令的使用教程
2022/06/25 Servers