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中的错误和异常处理简单操作示例【try-except用法】
Jul 25 Python
Python3.x对JSON的一些操作示例
Sep 01 Python
利用python将xml文件解析成html文件的实现方法
Dec 22 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 Python
Python返回数组/List长度的实例
Jun 23 Python
Python常见的pandas用法demo示例
Mar 16 Python
对于Python深浅拷贝的理解
Jul 29 Python
python elasticsearch从创建索引到写入数据的全过程
Aug 04 Python
Python基于pygame实现单机版五子棋对战
Dec 26 Python
Python3 读取Word文件方式
Feb 13 Python
python 基于wx实现音乐播放
Nov 24 Python
Python控制鼠标键盘代码实例
Dec 08 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管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
PHP CURL获取返回值的方法
2014/05/04 PHP
PHP数据库操作Helper类完整实例
2016/05/11 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
jquery tab插件精简版分享
2011/09/10 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
JavaScript、jQuery与Ajax的关系
2016/01/24 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
简单实现js上传文件功能
2017/08/21 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
npm的lock机制解析
2019/06/20 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
Python中的集合类型知识讲解
2015/08/19 Python
多个应用共存的Django配置方法
2018/05/30 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
测试驱动开发的主要步骤是什么
2014/12/10 面试题
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
揭牌仪式策划方案
2014/05/28 职场文书
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers