我们从Python开源项目中,提取了以下6个代码示例,用于说明如何使用flask.ext.login.LoginManager()。
def setUp(self): FlaskBloggingTestCase.setUp(self) self._create_storage() self.app.config["BLOGGING_URL_PREFIX"] = "/blog" self.engine = self._create_blogging_engine() self.login_manager = LoginManager(self.app) @self.login_manager.user_loader @self.engine.user_loader def load_user(user_id): return TestUser(user_id) @self.app.route("/login/<username>/", methods=["POST"], defaults={"blogger": 0}) @self.app.route("/login/<username>/<int:blogger>/", methods=["POST"]) def login(username, blogger): this_user = TestUser(username) login_user(this_user) if blogger: identity_changed.send(current_app._get_current_object(), identity=Identity(username)) return redirect("/") @self.app.route("/logout/") def logout(): logout_user() identity_changed.send(current_app._get_current_object(), identity=AnonymousIdentity()) return redirect("/") for i in range(20): tags = ["hello"] if i < 10 else ["world"] user = "testuser" if i < 10 else "newuser" self.storage.save_post(title="Sample Title%d" % i, text="Sample Text%d" % i, user_id=user, tags=tags)
def create_app(testing=False): app = Flask(__name__) if os.environ.get('DRIP_ENV', '') == 'production': app.config.from_object('drip.config.Production') else: app.config.from_object('drip.config.Development') app.template_folder = os.path.join(PATH, 'templates') if not testing: # Monitoring. newrelic.agent.initialize(os.path.join(PATH, '..', 'newrelic-web.ini'), 'development') db = create_mongo(app) login_manager = LoginManager() login_manager.init_app(app) # noinspection PyTypeChecker login_manager.user_loader(get_user) login_manager.login_view = "user.login" # views with jinja templates app.register_blueprint(main) app.register_blueprint(shopify) app.register_blueprint(dashboard) return app
def test_succesful_event(app, test_client, path_info, secret_key, user_id): @app.route(path_info, methods=['GET', 'POST']) def boom(): 1 / 0 # from http://docs.datadoghq.com/api/ options = { 'api_key': '0c82710457ebeaeab1c901c0152852fa', 'app_key': 'b8e5af1010d49ac73cadde2a5be5ef01b6ae73c6' } header = 'Accept' html = 'text/html' headers = {header: html} to_ban = ('to ban', 'Guido Van Rossum') to_find = ('to find', 'Raymond Hettinger') data = dict((to_ban, to_find)) h_blacklist = ['/{0}'.format(header)] d_blacklist = ['/{0}'.format(to_ban[0])] app.secret_key = secret_key login_manager = flask_login.LoginManager() @login_manager.user_loader def user_loader(username): class User(flask_login.UserMixin): def get_id(self): return user_id return User() login_manager.init_app(app) ba = Breathalyzer(app, headers_blacklist=h_blacklist, data_blacklist=d_blacklist, **options) assert ba.last_event_id is None with test_client() as c: with c.session_transaction() as sess: sess['user_id'] = user_id sess['_fresh'] = True response = c.post(path_info, data=json.dumps(data), content_type='application/json', headers=headers) assert response.status == '500 INTERNAL SERVER ERROR' assert b'<title>500 Internal Server Error</title>' in response.data assert response.mimetype == 'text/html' assert 'ZeroDivisionError' in ba.last_event['event']['text'] assert ba.last_event_id == ba.last_event['event']['id'] assert to_ban[1] not in ba.last_event['event']['text'] assert to_find[1] in ba.last_event['event']['text'] assert user_id in ba.last_event['event']['text']
def create_app(object_name): app = Flask(__name__) app.config.from_object(object_name) db.init_app(app) login_manager = LoginManager() login_manager.login_view = 'login.login' from app.views import login from app.views import webscan app.register_blueprint(login.login_module) app.register_blueprint(webscan.webscan_module) return app