flask05

2018-10-20  本文已影响0人  fly5

一、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内置对象

request 请求
session 会话技术
config 配置
g
数据传递的新方式
突破变量存储位置限制
上一篇下一篇

猜你喜欢

热点阅读