装饰器的应用场景

三世轮回 提交于 2019-12-05 11:46:32

# 1. 测试代码的运行时间

import time

def outter(func):
    def inner(*args,**kwargs):
        s = time.time()
        func()
        e = time.time()
        return e - s
    return inner


@outter
def demo():
    for i in range(1000000):
        pass


t = demo()
print(t) # 结果0.022935152053833008

 

# 2. 限制访问

from flask import Flask,request

app = Flask(__name__)


@app.route("/")
def index():
    print(request.host)
    print(request.host_url)
    # 怎么设置一个逻辑,同一个host一秒钟访问次数超过10次,认为是非人为操作,然后拉入黑名单,12个小时候才能继续访问。
    # 方式一,将访问的ip插入到redis中,设置过期时间为1/10s,若插入成功,就可以继续访问,插入失败就返回请求过于频繁。
    # 对每一个网页的话都限制IP的话,就要封装一个装饰器,请求前先进行ip检查,flask中的请求钩子,before_request,是否合理
    # 方式二,


    return "welcome to flask"


if __name__ == '__main__':
    app.run(debug=True)

 

# 3. 判断是否是登录的状态

 

# 4. 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!