用flask开发个人博客(3)—— flask中的请求和视图函数映射
来源:互联网 发布:自动秒杀软件 编辑:程序博客网 时间:2024/04/27 21:51
flask中通过修饰器对路径和视图函数进行了映射,如在映射当前路径时,通过了以下语句
flask中将每个视图函数都用修饰器进行了修饰,并将其保存在全局的映射中,当IE客户端输入所需的URL时,会从该映射中查找到对应的视图函数,然后进行调用。
git cloneGit@github.com:HymanLiuTS/flaskTs.git
获取本文源代码:
git checkout FL03
@route('/'): def index(): ... return ...
上面是python中修饰器的语法。修饰器可以对函数进行封装,可以通过修饰器进行做一些在调用函数时必须做的一些操作。将函数通过修饰器进行修饰之后,再次调用该函数就不会再单纯的调用之前该函数原有的代码,而是会加上修饰器中的内容。
#!/usr/bin/env pythonfrom time import ctime,sleepdef settime(func): def tempfun(): print '[%s] %s called'%(ctime(),func.__name__) return func return tempfun@settimedef myfunc(): passmyfunc()sleep(4)for i in range(2): myfunc() sleep(1)
上面的代码中,settime就是myfunc的一个修饰器,修饰器分为带惨和不带参两种,这里的参数是指除被修饰函数以外的参数,上述修饰器属于不带参修饰器,修饰器中需要自己定义一个额外的函数,该函数把被修饰函数作为返回值,而修饰器将该函数作为返回值。函数一旦被修饰器修饰 ,以后再调用时就不是单纯的调用该函数,上述代码实现了在每次调用myfunc前打印输出当前的时间。
结果如下:
hyman@hyman-laptop:~/work/test$ ./decrator.py [Thu Sep 15 22:20:50 2016] myfunc called[Thu Sep 15 22:20:54 2016] myfunc called[Thu Sep 15 22:20:55 2016] myfunc called
flask中将每个视图函数都用修饰器进行了修饰,并将其保存在全局的映射中,当IE客户端输入所需的URL时,会从该映射中查找到对应的视图函数,然后进行调用。
可以通过全局的app.url_map变量查看这些映射关系
>>> from test import app>>> app.url_mapMap([<Rule '/' (HEAD, OPTIONS, GET) -> index>, <Rule '/static/<filename>' (HEAD, OPTIONS, GET) -> static>])
Github位置:
https://github.com/HymanLiuTS/flaskTs
git cloneGit@github.com:HymanLiuTS/flaskTs.git
获取本文源代码:
git checkout FL03
0 0
- 用flask开发个人博客(3)—— flask中的请求和视图函数映射
- 用flask开发个人博客(2)—— Flask中的请求对象request
- 用flask开发个人博客(15)—— flask中四种请求钩子
- 用flask开发个人博客(21)—— 在视图函数中操作数据库
- 用flask开发个人博客(5)——flask中的四种响应类型
- 用flask开发个人博客(8)—— flask中的模板
- 用flask开发个人博客(23)—— flask中的数据模型关系
- 用flask开发个人博客(35)—— flask中的上下文处理器app_context_processor
- 用flask开发个人博客(7)—— flask中设置和获取cookie
- 用flask开发个人博客(27)—— 利用程序工厂函数创建Flask程序对象并注册蓝本
- 用flask开发个人博客(1)—— 一个简单的flask程序
- 用flask开发个人博客(6)—— 为flask程序添加命令行解释器
- 用flask开发个人博客(14)—— flask中本地化时间的引用
- 用flask开发个人博客(22)—— 使用Flask-Migrate实现数据库的更新
- 用flask开发个人博客(24)—— flask中使用Flask_Mail发送电子邮件
- 用flask开发个人博客(4)—— flask中4种全局变量
- 用flask开发个人博客(39)—— 在flask中定义Rest API
- 用flask开发个人博客(40)—— Flask中三种测试方法
- Linux下安装vncserver
- Struts2学习笔记---动态方法的调用
- Unity 游戏存档之XML实现
- Android Call分析(一) ---- Call对象详解
- 基本算法-二分查找
- 用flask开发个人博客(3)—— flask中的请求和视图函数映射
- 层次遍历二叉树从上到下左往右遍历
- webob/routes
- 如何看待 TensorFlow 高级API TensorLayer 1.2版发布?
- [杂]大数据和深度学习(讲座总结)
- 近期心得
- C++函数返回数组及动态建立二维数组的方法
- 机器学习从0开始。简介与符号
- 51nod oj 1040 最大公约数之和 1060 最复杂的数【打表+筛重】