def create_app(config): application = Flask(__name__) application.config.from_object(config) application.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False application.jinja_env.add_extension('jinja2.ext.do') db.init_app(app=application) security.init_app(app=application, datastore=user_datastore) api.init_app(app=application) app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' migrate = Migrate(application, db) _load_application_blueprints(application) _load_api_blueprints(application) load_flask_dance_authorization(application) register_assets(application) _register_global_variables(application) return application
def create_app(config_name): # 创建app实例对象 app = Flask(__name__) # 加载配置 app.config.from_object(config.get(config_name) or 'default') # 执行额外的初始化 config.get(config_name).init_app(app) # 设置debug=True,让toolbar生效 # app.debug=True # Setup Flask-Security user_datastore = SQLAlchemyUserDatastore(db, User, Role) security.init_app(app, user_datastore) # 加载扩展 config_extensions(app) # 加载admin config_admin(app) # 初始化调度器配置 config_scheduler(app) # 配置蓝本 config_blueprint(app) # 配置全局错误处理 config_errorhandler(app) # 返回app实例对象 return app
def register_extensions(app): db.init_app(app) migrate.init_app(app, db) # @todo there is no init_app in SQLAlchemyUserDatastore :'( user_datastore = SQLAlchemyUserDatastore(db, User, Role) security.init_app(app, user_datastore) return None
def register_extensions(app): """Register Flask extensions.""" db.app = app db.init_app(app) migrate.init_app(app, db) mail.init_app(app) moment.init_app(app) from flask_security import SQLAlchemyUserDatastore from app.auth.models import User, Role user_datastore = SQLAlchemyUserDatastore(db, User, Role) security.init_app(app=app, datastore=user_datastore) return None
def create_app(): app = Flask(__name__, static_folder='static', static_url_path="/static") app.config.from_object(Config()) db.init_app(app) csrf.init_app(app) security.init_app(app, user_datastore) app.cli.add_command(init_db_command) app.register_blueprint(api_blueprint) @app.route('/', defaults={'path': ''}) @app.route('/<path:path>') def catch_all(path): return app.send_static_file("index.html") return app
def register_extensions(app): db.init_app(app) migrate.init_app(app, db) principal.init_app(app) security.init_app(app, datastore=user_datastore) mail.init_app(app)
def create_app(config_name): """An application factory, as explained here: http://flask.pocoo.org/docs/patterns/appfactories/ @param config_name: The configuration object to use. """ app = Flask(__name__) app.config.from_object(config[config_name] or config[os.getenv('BG_CONFIG')]) app.config.from_envvar('BG_SETTINGS', silent=True) config[config_name].init_app(app) db.init_app(app) # Setup Flask-Security user_datastore = SQLAlchemyUserDatastore(db, User, Role) from app.users.forms import ExtendedRegisterForm security.init_app(app, user_datastore, register_form=ExtendedRegisterForm) bootstrap.init_app(app) mail.init_app(app) moment.init_app(app) migrate.init_app(app, db) md = Markdown(app, output_format='html5', extensions=['fenced_code', 'tables', 'abbr', 'footnotes']) pages.init_app(app) csrf.init_app(app) register_adminviews(app) app.jinja_env.filters['alert_class'] = alert_class_filter # WTForms helpers from .utils import add_helpers add_helpers(app) if not app.debug: import logging from logging.handlers import SMTPHandler mail_handler = SMTPHandler(mailhost=app.config['MAIL_SERVER'], fromaddr=app.config['ADMINS_FROM_EMAIL'], toaddrs=app.config['ADMINS_EMAIL'], subject='Application Error Occurred') mail_handler.setLevel(logging.ERROR) app.logger.addHandler(mail_handler) register_blueprints(app) register_commands(app) # Create the bg_interface directory if it does not exist directory = os.path.join(os.path.dirname(BASE_DIR), 'bg_interface') if not os.path.exists(directory): os.makedirs(directory) with app.app_context(): db.create_all() if not User.query.first(): # Create a default admin user if there is no user in the database user_datastore.create_role(name='admin') user_datastore.create_user(name='Administration Account', email='*****@*****.**', password=encrypt_password('password'), roles=['admin']) db.session.commit() app.logger.info('Created admin user [email protected]') return app