python web基础之加载静态文件实例


Posted in Python onMarch 20, 2018

在web运行中很重要的一个功能就是加载静态文件,在django中可能已经给我们设置好了,我们只要直接把模板文件

放在templates就好了,但是你知道在基础中,像图片是怎么加载以及找到相应位置的吗?

下面我们来看看。

在上篇文章中我把,静态文件的路径单独出来在这里说说了,正好说说全局变量request的作用。

首先,我们写前端图片的路径:

<img src="/static?file=1.gif"/>

看到这里,可能已经有人看出来了,对的,我们把图片路径看成url路径和参数。

这里要说下,当浏览器看到img标签,它会给服务器发请求,所以路径相当于:

127.0.0.1/static?file=1.gif

懂了吧,实际上就是请求的路径是static,参数是file = 1.gif

然后这里我们有个函数parse_path(),

def parsed_path(path): 
 """ 
 /ss?message=hello world&author=fei 
 返回如下字典形式 
 { 
  'message': 'hello world', 
  'author': 'fei', 
 } 
 """ 
 index = path.find('?') 
 if index == -1: 
  return path, {} 
 else: 
  path, query_string = path.split('?', 1) 
  args = query_string.split('&') 
  query = {} 
  for arg in args: 
   k, v = arg.split('=') 
   query[k] = v 
  return path, query

把路径传进去,就会把file和1.gif传进request里,如下

{ 
 'file' = '1.gif', 
}

这样,我们就把参数化为字典形式,然后

r = { 
  '/static': route_static, 
 }

当请求的路径为static是就会转向route_static函数,这个函数写在路由里,所以我们需要引入一下

response = r.get(path, error)
return response(request)

这样,显示图片就会转向route_static函数。

我们看下这个函数:

def route_static(request): 
 """ 
 静态资源的处理函数, 读取图片并生成响应返回 
 """ 
 filename = request.query.get('file', '1.gif') 
 path = 'static/' + filename 
 with open(path, 'rb') as f: 
  header = b'HTTP/1.1 200 OK\r\nContent-Type: image/gif\r\n\r\n' 
  img = header + f.read() 
  return img

我们看下,下面这句话

filename = request.query.get('file', 'ceshi.gif')

这样filename就会去request的query里找file键,如果有就返回,如果没有就返回ceshi.gif

然后就是同样的套路,读取,然后返回。

这样,一个把静态文件放在指定位置,并读取,就完成了

以上这篇python web基础之加载静态文件实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
利用python获得时间的实例说明
Mar 25 Python
Python之eval()函数危险性浅析
Jul 03 Python
python中WSGI是什么,Python应用WSGI详解
Nov 24 Python
学生信息管理系统Python面向对象版
Jan 30 Python
Python计算IV值的示例讲解
Feb 28 Python
Selenium 滚动页面至元素可见的方法
Mar 18 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
Jun 08 Python
python利用google翻译方法实例(翻译字幕文件)
Sep 21 Python
使用Python实现音频双通道分离
Dec 25 Python
Python 实现进度条的六种方式
Jan 06 Python
Django 如何实现文件上传下载
Apr 08 Python
Python绘制分类图的方法
Apr 20 Python
python如何修改装饰器中参数
Mar 20 #Python
python MySQLdb使用教程详解
Mar 20 #Python
django中的HTML控件及参数传递方法
Mar 20 #Python
安装python时MySQLdb报错的问题描述及解决方法
Mar 20 #Python
python如何定义带参数的装饰器
Mar 20 #Python
Python回文字符串及回文数字判定功能示例
Mar 20 #Python
python如何把嵌套列表转变成普通列表
Mar 20 #Python
You might like
php setcookie函数的参数说明及其用法
2014/04/20 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
2014/08/20 PHP
php实现头像上传预览功能
2017/04/27 PHP
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
纯javascript模仿微信打飞机小游戏
2015/08/20 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
用Node编写RESTful API接口的示例代码
2018/07/04 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
Python中列表的一些基本操作知识汇总
2015/05/20 Python
Python 性能优化技巧总结
2016/11/01 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
Python3 把一个列表按指定数目分成多个列表的方式
2019/12/25 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
Python 实现集合Set的示例
2020/12/21 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
电子商务专业个人的自我评价
2013/11/19 职场文书
拾金不昧的表扬信
2014/01/16 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
2014年环保工作总结
2014/11/26 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
python for循环赋值问题
2021/06/03 Python
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏