def register_extensions(app): # Flask-SQLAlchemy db.init_app(app) db.app = app # Flask-Redis # rd.init_app(app) # Flask-Migrate # migrate.init_app(app, db) # Flask-Mail mail.init_app(app) # Flask-Cache # cache.init_app(app) # Flask-Login from models import AnonymousUser login_manager.session_protection = 'basic' login_manager.login_view = 'blog.articles' login_manager.login_message = 'please login first~' login_manager.anonymous_user = AnonymousUser login_manager.init_app(app)
def create_app(): app = Flask(__name__) if app.config["ENV"] == "development": app.config.from_object("config.DevelopmentConfig") else: app.config.from_object("config.ProductionConfig") app.register_blueprint(json_return) app.register_blueprint(main_page) app.register_blueprint(account_page) app.register_blueprint(register_login_page) app.register_blueprint(general_page) app.register_blueprint(about_page) app.register_blueprint(experience_page) app.register_blueprint(education_page) app.register_blueprint(skills_page) app.register_blueprint(project_page) from extensions import db, login_manager, cors, migrate db.init_app(app) login_manager.init_app(app) cors.init_app(app) migrate.init_app(app, db) @login_manager.user_loader def load_user(user_id): return General.query.get(int(user_id)) with app.app_context(): db.create_all() return app
def register_extensions(app): """ 扩展实例化 :param app: :return: """ db.init_app(app) moment.init_app(app) migrate.init_app(app=app, db=db) cache.init_app(app) login_manager.init_app(app) # 登录过滤保护 login_manager.exempt_views((user_bp, demo_bp, audio_bp, img_api_bp, ocr_api_bp)) session.init_app(app) csrf.init_app(app) # csrf过滤保护 csrf.exempt_views((demo_bp, audio_bp, img_api_bp, ocr_api_bp)) # 定时任务 解决FLASK DEBUG模式定时任务执行两次 if os.environ.get('FLASK_DEBUG', '0') == '0': scheduler.init_app(app) scheduler.start() elif os.environ.get('WERKZEUG_RUN_MAIN') == 'true': scheduler.init_app(app) scheduler.start()
def configure_extensions(app): # I18N babel.init_app(app) # Database db.init_app(app) # CouchDB couchdbmanager.setup(app) couchdbmanager.sync(app) # Login login_manager.init_app(app) login_manager.login_view = "authentification.login" # Roles principal.init_app(app) # Mail mail.init_app(app) # Plugins list global plugin_manager.init_plugin_manager(app.root_path + "/plugins", app) plugin_manager.activate_plugins() plugin_manager.setup_plugins()
def create_app(config=None): """Return a Flask application according to application factory design pattern function. Create app object. Configure it. Initialize Flask extensions. Register Blueprints. :type config: dict :param config: Additional configuration that'll override default values """ app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' # sqlite://<nohostname>/<path> app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config['TEMPLATES_AUTO_RELOAD'] = True app.config.from_pyfile('secret.py', silent=True) if config is not None: app.config.update(config) misaka.init_app(app) login_manager.init_app(app) db.init_app(app) app.register_blueprint(login) app.register_blueprint(static_pages) app.register_blueprint(blog, url_prefix='/blog') app.register_blueprint(simple_routes) app.register_blueprint(tags_api, url_prefix='/blog') return app
def init_login(): login_manager = login.LoginManager() login_manager.init_app(app) # Create user loader function @login_manager.user_loader def load_user(user_id): return db.session.query(User).get(user_id)
def register_extensions(app): db.init_app(app) oauth.init_app(app) socketio.init_app(app) login_manager.init_app(app) csrf.init_app(app) moment.init_app(app)
def extensions(app_instance): """ Register 0 or more extensions (mutates the app passed in). :param app: Flask application instance :return: None """ # debug_toolbar.init_app(app) # mail.init_app(app_instance) # csrf.init_app(app_instance) db.init_app(app_instance) login_manager.init_app(app_instance) # app.config.update({ # 'RESTFUL_JSON':{ # 'cls':CustomJSONEncoder # } # }) # app.json_encoder = CustomJSONEncoder # flask_restful.representations.json.settings["cls"] = CustomJSONEncoder # metaData = MetaData() # engine = create_engine(app_instance.config['SQLALCHEMY_DATABASE_URI'], pool_recycle=3600, pool_size=20, max_overflow=-1) # metaData.bind = engine # engine.echo = False # # # session_factory = sessionmaker(bind=engine, autoflush=False) # session = flask_scoped_session(session_factory, app_instance) return app_instance
def create_app(object_name, env="dev"): """ Arguments: object_name: the python path of the config object, e.g. webapp.settings.ProdConfig env: The name of the current environment, e.g. prod or dev """ app = Flask(__name__) app.config.from_object(object_name) app.config['ENV'] = env # init the cache cache.init_app(app) # init SQLAlchemy db.init_app(app) login_manager.init_app(app) # register our blueprints from controllers.main import main from controllers.user import user app.register_blueprint(main) app.register_blueprint(user) return app
def create_app(config): app = Flask(__name__) app.config.from_object(config) db.init_app(app) # admin.init_app(app) login_manager.init_app(app) oauth.init_app(app) app.add_template_filter(date_filter, 'date') app.add_template_filter(null_filter, 'None_filter') app.add_template_filter(url_filter, 'url_filter') app.add_template_filter(page_filter, 'page_filter') app.add_template_filter(isdir, 'isdir') app.add_template_filter(relative_path, 'relative_path') from blog.main.views import main_blueprint app.register_blueprint(main_blueprint) from blog.admin.views import admin_blueprint app.register_blueprint(admin_blueprint) from blog.novel.views import novel_blueprint app.register_blueprint(novel_blueprint) from blog.cloudhub.views import cloud_hub_blueprint app.register_blueprint(cloud_hub_blueprint) from .main import views return app
def init_extensions(app): db.init_app(app) db.app = app db.metadata.naming_convention = { "ix": 'ix_%(column_0_label)s', "uq": "uq_%(table_name)s_%(column_0_name)s", "ck": "ck_%(table_name)s_%(column_0_name)s", "fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s", "pk": "pk_%(table_name)s" } # set constraint naming convention to sensible default, per # http://docs.sqlalchemy.org/en/rel_0_9/core/constraints.html#configuring-constraint-naming-conventions assets.init_app(app) assets.app = app babel.init_app(app) cache.init_app(app) csrf.init_app(app) mail.init_app(app) login_manager.init_app(app) store.init_app(app) rest.init_app(app, flask_sqlalchemy_db=db, preprocessors=restless_preprocessors) rest.app = app if app.config.get('DEBUG'): from flask_debugtoolbar import DebugToolbarExtension DebugToolbarExtension(app)
def register_extensions(app): db.init_app(app) moment.init_app(app) csrf.init_app(app) bootstrap.init_app(app) login_manager.init_app(app) avatars.init_app(app)
def create_app(config_name=None): if config_name is None: config_name = 'default' app = Flask(__name__) app.config.from_object(config[config_name]) # db db.app = app db.init_app(app) # login login_manager.init_app(app) # blueprints for bp in blueprints: app.register_blueprint(bp) #bootstrap Bootstrap(app) #scheduler scheduler = APScheduler() scheduler.init_app(app) scheduler.start() app.scheduler = ScheduleHelper(scheduler) logging.basicConfig() handle_errors(app) handle_date(app) return app
def register_extensions(app): # ..config config.init_app(app) # ..bcrypt bcrypt.init_app(app) # ..db db.init_app(app) # ..csrf csrf_protect.init_app(app) # ...login_manager login_manager.init_app(app) login_manager.login_view = 'accounts.login' login_manager.login_message = None @login_manager.user_loader def load_user(user_id): from accounts.models import User return User.get_by_id(user_id) # ..migrate migrate.init_app(app, db) # ..webpack if not app.config['MIGRATION_MODE']: webpack.init_app(app) # ... return None
def create_app(): app = Flask(__name__) app.config.from_envvar('CALAPHIO_CONFIG') # Register Blueprints app.register_blueprint(core) # Register Jinja Filters app.jinja_env.filters['sanitize_html'] = sanitize_html # Extensions db.init_app(app) login_manager.init_app(app) csrf.init_app(app) bootstrap.init_app(app) nav.init_app(app) principal.init_app(app) register_renderer(app, "renderer", BetterBootstrapRenderer) # Method Rewriter app.wsgi_app = MethodRewriteMiddleware(app.wsgi_app) # Identity Loader identity_loaded.connect(on_identity_loaded, app, False) return app
def InitLogin(app): login_manager.init_app(app) @login_manager.user_loader def load_user(user_id): from app.models import User return User.objects(id=user_id).first()
def create_app(object_name): app = Flask(__name__) app.config.from_object(DevConfig) #db.init_app(app) # @app.route('/') # def index(): # return redirect(url_for('blog.home')) login_manager.init_app(app) principals.init_app(app) db.init_app(app) mongo.init_app(app) app.register_blueprint(stock_blueprint) app.register_blueprint(main_blueprint) app.register_blueprint(stocksolo_blueprint) @identity_loaded.connect_via(app) def on_identity_loaded(sender, identity): identity.user = current_user if hasattr(current_user, "username"): identity.provides.add(UserNeed(current_user.username)) if hasattr(current_user, 'roles'): for role in current_user.roles: identity.provides.add(RoleNeed(role)) return app
def register_extensions(app): # db.init_app(app) log.warn(get_connection("mongodb://mongo:27017", 27017)) # migrate.init_app(app, db) login_manager = LoginManager() login_manager.init_app(app) login_manager.login_view = "user_app.login"
def create_app(object_name): app = Flask(__name__) app.config.from_object(DevConfig) login_manager.init_app(app) principals.init_app(app) db.init_app(app) #模块注册 app.register_blueprint(stock_blueprint) app.register_blueprint(main_blueprint) app.register_blueprint(stocksolo_blueprint) app.register_blueprint(stockgroup_blueprint) app.register_blueprint(globalindustry_blueprint) app.register_blueprint(industryanalysis_blueprint) app.register_blueprint(investenv_blueprint) app.register_blueprint(api_blueprint) @identity_loaded.connect_via(app) def on_identity_loaded(sender, identity): identity.user = current_user if hasattr(current_user, "username"): identity.provides.add(UserNeed(current_user.username)) if hasattr(current_user, 'roles'): for role in current_user.roles: identity.provides.add(RoleNeed(role.name)) return app
def configure_extensions(app): """ Configure app extension. """ # flask SQLAlchemy db.init_app(app) db.create_all(app=app) # CSRF Protection csrf.init_app(app) @csrf.error_handler def csrf_error(reason): raise CsrfTokenError() # mail.init_app(app) # flask OAuthlib oauth.init_app(app) # Login Manger login_manager.init_app(app) # Interface for anonymous users class AnonymousUserMixin(_AnonymousUserMixin): username = '******' firstName = '' lastName = '' email = '' role = Role.GUEST is_admin = False login_manager.login_view = 'auth.post_login' login_manager.session_protection = "strong" login_manager.anonymous_user = AnonymousUserMixin
def init_extensions(app): db.init_app(app) db.app = app db.metadata.naming_convention = { "ix": 'ix_%(column_0_label)s', "uq": "uq_%(table_name)s_%(column_0_name)s", "ck": "ck_%(table_name)s_%(column_0_name)s", "fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s", "pk": "pk_%(table_name)s" } # set constraint naming convention to sensible default, per # http://docs.sqlalchemy.org/en/rel_0_9/core/constraints.html#configuring-constraint-naming-conventions assets.init_app(app) assets.app = app babel.init_app(app) cache.init_app(app) csrf.init_app(app) mail.init_app(app) login_manager.init_app(app) rq.init_app(app) app.rq = rq store.init_app(app) rest.init_app(app, flask_sqlalchemy_db=db, preprocessors=restless_preprocessors) rest.app = app limiter.init_app(app) for handler in app.logger.handlers: limiter.logger.addHandler(handler) if app.config.get('DEBUG'): from flask_debugtoolbar import DebugToolbarExtension DebugToolbarExtension(app) app.debug = True
def create_app(): load_dotenv(".env", verbose=True) app = Flask(__name__) app.config.from_object("default_config") app.config.from_envvar("APPLICATION_SETTINGS") api = Api(app) @app.errorhandler(ValidationError) def handle_marshmallow_validation(err): return jsonify(err.messages), 400 @app.before_first_request def create_tables(): db.create_all() db.init_app(app) ma.init_app(app) login_manager.init_app(app) # authorize.init_app(app) jwt.init_app(app) babel.init_app(app) # Set up Casbin model config app.config['CASBIN_MODEL'] = './src/casbinmodel.conf' # Set headers where owner for enforcement policy should be located app.config['CASBIN_OWNER_HEADERS'] = {'Authorization'} # Set up Casbin Adapter adapter = FileAdapter('./src/security_policy.csv') casbin_enforcer.init_app(app, adapter) # casbin_enforcer = CasbinEnforcer(app, adapter) # casbin_enforcer = UpdatedCasbinEnforcer(adapter) @app.route("/") @casbin_enforcer.enforcer def index(): return jsonify({"hello": "world"}) from authz.resources.user import UserRegister, UserLogin, UserLogout api.add_resource(UserRegister, "/register") api.add_resource(UserLogin, "/login") api.add_resource(UserLogout, "/logout") # from authlogin.resources.security import NewGroup, GroupResource, UserGroup # api.add_resource(NewGroup, "/group") # api.add_resource(GroupResource, "/group/<int:_id>") # api.add_resource(UserGroup, "/usergroup/<int:_id>") # # api.add_resource(UserGroup, "/usergroup") from main.resources.store import NewStore, Store, StoreList api.add_resource(NewStore, "/store") api.add_resource(Store, "/store/<int:_id>") api.add_resource(StoreList, "/stores") return app
def extension(app): csrf.init_app(app) moment.init_app(app) migrate.init_app(app) bootstrap.init_app(app) login_manager.init_app(app) db.init_app(app) return None
def extensions(our_app): mail.init_app(our_app) csrf.init_app(our_app) login_manager.init_app(our_app) login_manager.login_view = 'user.login' login_manager.login_message_category = 'info' return None
def register_extensions(app): toolbar.init_app(app) bootstrap.init_app(app) db.init_app(app) login_manager.init_app(app) moment.init_app(app) dropzone.init_app(app) whooshee.init_app(app)
def register_extensions(app): bootstrap.init_app(app) db.init_app(app) login_manager.init_app(app) csrf.init_app(app) ckeditor.init_app(app) mail.init_app(app) moment.init_app(app)
def configure_login(app): login_manager.login_view = 'admin.login' login_manager.login_message = u'你尚未登录 (︶︿︶)' #login_manager.refresh_view = 'frontend.reauth' @login_manager.user_loader def load_user(id): return Operator.query.get(id) login_manager.init_app(app)
def register_extensions(app): database.init_app(app) db_init(app.config.get("DROP_DB")) login_manager.init_app(app) login_manager.session_protection = "strong" login_manager.login_view = "main.login" bcrypt.init_app(app) return None
def register_extensions(app): assets.init_app(app) bcrypt.init_app(app) cache.init_app(app) db.init_app(app) login_manager.init_app(app) debug_toolbar.init_app(app) migrate.init_app(app, db) return None
def init_extensions(app): db.init_app(app) import models login_manager.init_app(app) @login_manager.user_loader def load_user(user_id): return User.get(user_id) admin.init_app(app)
def extensions(app): """ Register 0 or more extensions (mutates the app passed in). :param app: Flask application instance :return: None """ db.init_app(app) login_manager.init_app(app) return None
def register_extensions(app): bootstrap.init_app(app) db.init_app(app) login_manager.init_app(app) mail.init_app(app) dropzone.init_app(app) moment.init_app(app) whooshee.init_app(app) avatars.init_app(app) csrf.init_app(app)
def register_extensions(app): """Register Flask extensions.""" db.init_app(app) migrate.init_app(app, db) login_manager.init_app(app) bcrypt.init_app(app) if not scheduler.running: scheduler.init_app(app) scheduler.start() jwt.init_app(app)
def login_configure(app): login_manager.init_app(app) login_manager.login_view = app.config['LOGIN_VIEW'] @login_manager.user_loader def load_user(user_id): user_instance = User.query.filter_by(id=user_id).first() if user_instance: return user_instance else: return None
def register_extensions(app): from extensions import login_manager from extensions import migrate from extensions import db login_manager.init_app(app) login_manager.app = app db.init_app(app) db.app = app migrate.init_app(app, db) migrate.app = app
def create_app(app_config): app = Flask(__name__) app.config.from_object(app_config) __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) with open(os.path.join(__location__, 'secrets.json')) as secrets_file: secrets = json.load(secrets_file) app.secret_key = secrets.get('app_secret') app_config.SECRET_KEY = app.secret_key login_manager.login_view = 'login.show' admin.add_view(AdminModelView(Challenge, db.session)) admin.add_view(AdminModelView(Game, db.session)) admin.add_view(AdminModelView(MarathonInfo, db.session)) admin.add_view(AdminModelView(Prize, db.session)) admin.add_view(AdminModelView(Interview, db.session)) admin.add_view(AdminModelView(ScheduleEntry, db.session)) with open(os.path.join(__location__, 'secrets.json')) as secrets_file: secrets = json.load(secrets_file) app.config.update( MAIL_SERVER='smtp.gmail.com', MAIL_PORT=465, MAIL_USERNAME='******', MAIL_DEFAULT_SENDER='*****@*****.**', MAIL_PASSWORD=secrets.get("email_password"), MAIL_USE_SSL=True, MAIL_USE_TLS=False ) login_manager.init_app(app) admin.init_app(app) mail.init_app(app) register_routes(app) @app.errorhandler(404) def page_not_found(e): return render_template('404.tmpl'), 404 @login_manager.user_loader def load_user(id): return db.session.query(User).filter_by(id=id).first() @app.context_processor def inject_marathon_info(): marathon_info = getattr(g, "marathon_info", None) if not marathon_info: marathon_info = g.marathon_info = db.session.query(MarathonInfo).first() current_game = db.session.query(Game).filter_by(id=marathon_info.current_game_id).first() return dict(marathon_info=marathon_info, current_game=current_game) return app
def configure_extensions(app): db.init_app(app) login_manager.init_app(app) @app.after_request def after_request(response): try: db.session.commit() except Exception,e: db.session.rollback() abort(500) return response
def config_app(app, config): app.logger.info('Setting up application...') app.logger.info('Loading config file: %s' % config) app.config.from_pyfile(config) app.logger.info('Setting up extensions...') db.init_app(app) # Init the Flask-Bcrypt via app object bcrypt.init_app(app) # Init the Flask-Login via app object login_manager.init_app(app) # Init the Flask-Prinicpal via app object principals.init_app(app) @identity_loaded.connect_via(app) def on_identity_loaded(sender, identity): """Change the role via add the Need object into Role. Need the access the app object. """ # Set the identity user object identity.user = current_user # Add the UserNeed to the identity user object if hasattr(current_user, 'id'): identity.provides.add(UserNeed(current_user.id)) # Add each role to the identity user object if hasattr(current_user, 'roles'): for role in current_user.roles: identity.provides.add(RoleNeed(role.name)) # 自定义全局函数 app.add_template_global(admin_permission, 'admin_permission') app.add_template_global(app.config.get('VERSION_NO'), 'version_no') # Init the Flask-Cache via app object cache.init_app(app) @app.after_request def after_request(response): try: db.session.commit() except Exception: db.session.rollback() abort(500) return response
def config_app(app, config): logger.info('Setting up application...') app.config.from_pyfile(config) db.init_app(app) oid.init_app(app) login_manager.init_app(app) @app.after_request def after_request(response): try: db.session.commit() except Exception: db.session.rollback() abort(500) return response
def create_app(config=None): app = Flask('scaffold', instance_relative_config=True) if config is not None: app.config.from_object(config) init_logger(app) logger.info('starting %s' % app.name) db.init_app(app) cors.init_app(app) celery.config_from_object(app.config) login_manager.init_app(app) api.init_app(app) init_api(api, app) logger.info('started %s' % app.name) return app
def configure_extensions(app): pages.init_app(app) bootstrap.init_app(app) app.config["BOOTSTRAP_SERVE_LOCAL"] = True db.init_app(app) app.config["db"] = db login_manager.init_app(app) app.config['ext_login_manager'] = login_manager configure_identity(app) moment.init_app(app) mail.init_app(app) app.config['ext_mail'] = mail sendmail.init_app(app) app.config['contrib_sendmail'] = sendmail
def create_app(object_name): """ An flask application factory, as explained here: http://flask.pocoo.org/docs/patterns/appfactories/ Arguments: object_name: the python path of the config object, e.g. project.config.ProdConfig """ app = Flask(__name__) app.config.from_object(object_name) db.init_app(app) mongo.init_app(app) bcrypt.init_app(app) oid.init_app(app) login_manager.init_app(app) principals.init_app(app) @identity_loaded.connect_via(app) def on_identity_loaded(sender, identity): # Set the identity user object identity.user = current_user # Add the UserNeed to the identity if hasattr(current_user, 'id'): identity.provides.add(UserNeed(current_user.id)) # Add each role to the identity if hasattr(current_user, 'roles'): for role in current_user.roles: identity.provides.add(RoleNeed(role.name)) app.register_blueprint(main_blueprint) app.register_blueprint(blog_blueprint) return app
def configure_extensions(app): """ Configure app extension. """ # flask SQLAlchemy db.init_app(app) db.create_all(app=app) # CSRF Protection csrf.init_app(app) @csrf.error_handler @xhr_or_template('errors/forbidden-page.html') def csrf_error(message): flash(message, 'danger') return {'status': 403} # mail.init_app(app) # Login Manger login_manager.init_app(app) login_manager.login_view = 'frontend.login' # Setup login manager anonymous class. class DefaultAnonymousUserMixin(AnonymousUserMixin): id = None firstName = None lastName = None username = '******' email = None dateJoined = None avatar = 'avatar.jpg' # TODO: find a better avatar img for guest users @staticmethod def is_admin(): return False login_manager.anonymous_user = DefaultAnonymousUserMixin
def configure_extensions(app): # flask-babel babel = Babel(app) @babel.localeselector def get_locale(): accept_languages = app.config.get('ACCEPT_LANGUAGES') return request.accept_languages.best_match(accept_languages) # flask-sqlalchemy db.init_app(app) # flask-mail mail.init_app(app) #mongo db mongo.init_app(app) # flask-cache cache.init_app(app) # flask-login login_manager.login_view = 'frontend.login' login_manager.refresh_view = 'frontend.reauth' @login_manager.user_loader def load_user(id): return User.query.get(id) login_manager.init_app(app) # flask-openid oid.init_app(app) # init debug toolbar toolbar = DebugToolbarExtension(app) init_extensions(app)
from apps.oauth.views import oauth_app from app_exceptions import UserInputError app = Flask(__name__) app.config.from_object(os.environ.get('APP_CONFIG_CLASS')) @app.errorhandler(UserInputError) def handle_user_input_error(error): response = jsonify(error.to_dict()) response.status_code = error.status_code return response db.init_app(app) db.app = app oauth.init_app(app) login_manager.init_app(app) manager = Manager(app) migrate = Migrate(app, db) manager.add_command('db', MigrateCommand) app.register_blueprint(index_app, url_prefix='/') app.register_blueprint(user_app, url_prefix='/user') app.register_blueprint(oauth_app, url_prefix='/oaut') if __name__ == '__main__': manager.run()
def create_app(app_config): app = Flask(__name__) app.config.from_object(app_config) # create a fake MarathonInfo if one doesn't exist # just enough to bootstrap info = db.session.query(MarathonInfo).first() if not info: now = datetime.datetime.now() half_an_hour_earlier = now - datetime.timedelta(minutes=30) half_an_hour_later = now + datetime.timedelta(minutes=30) test_game = Game.create(name='Test Game', developer='Test Dev') test_play = ScheduleEntry.create( title='Play The Test Game', game_id=test_game.id, start=half_an_hour_earlier, end=half_an_hour_later ) MarathonInfo.create( start=(now - datetime.timedelta(hours=10)), hours=31, total=12345.67, current_game_id=test_game.id, next_game_id=test_game.id, current_schedule_entry=test_play.id ) __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) try: # dev with open(os.path.join(__location__, 'secrets.json')) as secrets_file: secrets = json.load(secrets_file) app.secret_key = secrets.get('app_secret') app_config.SECRET_KEY = app.secret_key app.config.update( MAIL_SERVER='smtp.gmail.com', MAIL_PORT=465, MAIL_USERNAME='******', MAIL_DEFAULT_SENDER='*****@*****.**', MAIL_PASSWORD=secrets.get("email_password"), MAIL_USE_SSL=True, MAIL_USE_TLS=False ) except IOError: # prod app.secret_key = os.environ.get('IGG_APP_SECRET') app_config.SECRET_KEY = app.secret_key app.config.update( MAIL_SERVER='smtp.gmail.com', MAIL_PORT=465, MAIL_USERNAME='******', MAIL_DEFAULT_SENDER='*****@*****.**', MAIL_PASSWORD=os.environ.get("IGG_EMAIL_PASSWORD"), MAIL_USE_SSL=True, MAIL_USE_TLS=False ) login_manager.login_view = 'login.show' admin.add_view(AdminModelView(Challenge, db.session, endpoint='challengeadmin')) admin.add_view(AdminModelView(Game, db.session)) admin.add_view(AdminModelView(MarathonInfo, db.session)) admin.add_view(AdminModelView(Prize, db.session)) admin.add_view(AdminModelView(Interview, db.session)) admin.add_view(AdminModelView(ScheduleEntry, db.session)) admin.add_view(AdminModelView(User, db.session)) admin.add_view(AdminModelView(Crew, db.session)) admin.add_view(ImageView(Image, db.session)) login_manager.init_app(app) admin.init_app(app) mail.init_app(app) register_routes(app) @app.errorhandler(404) def page_not_found(e): return render_template('404.tmpl'), 404 @login_manager.user_loader def load_user(id): return db.session.query(User).filter_by(id=id).first() @app.context_processor def inject_marathon_info(): marathon_info = getattr(g, "marathon_info", None) if not marathon_info: marathon_info = g.marathon_info = db.session.query(MarathonInfo).first() current_game = db.session.query(Game).filter_by(id=marathon_info.current_game_id).first() return dict(marathon_info=marathon_info, current_game=current_game) return app
def configure_extensions(app): db.init_app(app) login_manager.init_app(app) mail.init_app(app)
def register_extensions(app): """Register all extensions.""" login_manager.init_app(app) debug_toolbar.init_app(app) mail.init_app(app)
def configure_extensions(app): db.init_app(app) login_manager.init_app(app) login_manager.login_view = '/login'