flask05

作者: fly5 | 来源:发表于2018-10-20 15:48 被阅读0次

    一、flask-debugtoolbar

    • 官网
    http://www.pythondoc.com/flask-debugtoolbar/index.html
    
    • 安装
    $ pip install flask-debugtoolbar
    

    -配置

    app.debug = True
    app.config['SECRET_KEY'] = '<replace with a secret key>'
    
    toolbar = DebugToolbarExtension(app)
    
    • 使用
    只要app.debug = True在模板中会显示调试工具栏!
    

    二、flask-caching

    • 问题
    flask-cache
    flask-caching【推荐】
    备注:除了导包不同,操作都是一致的!!
    
    • 安装
    $ pip install Flask-Cache
    或
    $ pip install Flask-Caching
    
    • 配置
    cache = Cache(config={'CACHE_TYPE':'simple'})
    cache.init_app(app)
    
    • 使用
    # 缓存视图函数
    @cache.cached(timeoyut=30)
    
    • 其他配置
    CACHE_TYPE
        null:无缓存
        simple:本地Python字典存储
        memcached:使用MemcachedCache作为缓存后端
        gaememcached:使用GAEMemcachedCache作为缓存后端
        redis:使用RedisCache作为存储后端
        filesystem:使用FileSystem作为缓存
        saslmemecached:使用SASLMemcachedCache作为缓存
        
    RedisCache - redis配置
        CACHE_DEFAULT_TIMEOUT   超时时间
        CACHE_KEY_PREFIX        cache_key前缀(key-value)
        CACHE_REDIS_HOST        redis主机
        CACHE_REDIS_PORT        redis端口号
        CACHE_REDIS_PASSWORD    redis密码
        CACHE_REDIS_DB          redis数据库序号
        CACHE_REDIS_URL         redis链接URL
        CACHE-ARGS              缓存时传递的参数列表
        CACHE_OPTIONS           选项(传递参数的作用)
    
    • 其他作用
    cache.set('name','atom',timeout=60)
    name = cache.get('name')
    cache.clear()
    

    三、反爬策略

    • 基本反爬策略
    - 黑白名单,直接拦截
    - 频繁操作,直接拦截
    - 不是浏览器发起的请求,直接拦截
    

    四、请求钩子

    • 请求钩子
    - before_first_request 第一次请求之前处理
    - before_request    每次请求之前处理
    - after_request     每次请求之后处理(没有异常)
    - teardown_request  每次请求之后处理(不管有没有异常)
    
    @blue.before_request
    def before():
        # key
        key = 'ip:' + request.remote_adddr
        
        # 获取值
        value = cache.get(key)
        
        # 判断处理
        if value:  # 直接拦截
            return '虫子'
        else:       # 第一次访问,通过
            cache.set(key,'虫子',timeout=3)
            
    

    五、flask内置对象

    • flask内置对象
    request 请求
    session 会话技术
    config 配置
    g
    
    • g
    数据传递的新方式
    突破变量存储位置限制
    

    相关文章

      网友评论

          本文标题:flask05

          本文链接:https://www.haomeiwen.com/subject/hhlmzftx.html