12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # ********************************************************************************
- # Copyright © 2018 jianglin
- # File Name: __init__.py
- # Author: jianglin
- # Email: xiyang0807@gmail.com
- # Created: 2018-02-11 14:52:12 (CST)
- # Last Update: 星期日 2018-02-11 15:31:19 (CST)
- # By:
- # Description:
- # ********************************************************************************
- from flask import request, current_app
- from flask_wtf.csrf import CSRFProtect
- from flask_avatar import Avatar
- from flask_maple.models import db
- from flask_maple.redis import Redis
- from flask_maple.mail import Mail
- from flask_principal import Principal
- from flask_msearch import Search
- from flask_caching import Cache
- from . import babel, login, maple
- db = db
- csrf = CSRFProtect()
- redis_data = Redis()
- cache = Cache()
- mail = Mail()
- principal = Principal()
- search = Search(db=db)
- class AvatarCache(Avatar):
- @cache.cached(
- timeout=180, key_prefix=lambda: "avatar:{}".format(request.url))
- def avatar(self, text, width=128):
- from flask import abort, make_response
- from flask_avatar.avatar import GenAvatar
- width_range = current_app.config.get('AVATAR_RANGE', [0, 512])
- if width < width_range[0] or width > width_range[1]:
- abort(404)
- stream = GenAvatar.generate(width, text)
- buf_value = stream.getvalue()
- response = make_response(buf_value)
- response.headers['Content-Type'] = 'image/jpeg'
- return response
- avatar = AvatarCache()
- def init_app(app):
- db.init_app(app)
- avatar.init_app(app)
- cache.init_app(app)
- csrf.init_app(app)
- principal.init_app(app)
- redis_data.init_app(app)
- mail.init_app(app)
- search.init_app(app)
- babel.init_app(app)
- login.init_app(app)
- maple.init_app(app)
|