用flask开发个人博客(3)—— flask中的请求和视图函数映射

来源:互联网 发布:自动秒杀软件 编辑:程序博客网 时间:2024/04/27 21:51
        flask中通过修饰器对路径和视图函数进行了映射,如在映射当前路径时,通过了以下语句
@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
原创粉丝点击