def create_app(config): app = Flask(__name__, static_url_path='', static_folder=STATIC_PATH) init_app_config(app, config) init_logger(app) app.url_map.strict_slashes = False lm = LoginManager() lm.unauthorized_handler(basic_unauthorized) lm.init_app(app) lm.user_loader(load_user) lm.session_protection = "strong" # this patch needs because chrome will ignore cookies when using ip. app.session_interface.get_cookie_domain = lambda _app: None flex = FlexRestManager(db_base=Base, db_session_callback=global_session) flex.init_app(app) register_blueprints(app, BLUEPRINTS) @app.after_request def after_request(response): dbs = global_session(create=False) dbs and dbs.close() return response @app.route('/favicon.ico') def favicon(): return app.send_static_file('images/favicon.ico') return app
dbs = get_session() dbs.query(User).filter_by(id=user_id).update( {'last_activity': now}) dbs.commit() dbs.close() return fn(*args, **kwargs) return wrapper app = Flask(__name__) app.secret_key = 'secret' lm = LoginManager() lm.init_app(app) lm.user_loader(load_user) lm.session_protection = "strong" flex = FlexRestManager(db_base=Base, db_session_callback=get_session, common_decorators=[track_last_activity]) flex.init_app(app) user_bp = Blueprint('user_rest', __name__) class UserRestApiHandler(RestApiHandler): resource_class = User user_resource = RestApiResource( name="user", route="/user", app=user_bp, decorators=[login_required], handler=UserRestApiHandler())