def create_app(config, env="prod"): """ Application factory config - the config object env - name of environment to load """ app = Flask(__name__) app.config.from_object(config) app.config['ENV'] = env # Flask cache init cache.init_app(app) # Markdown md = Markdown(app) # initialize the debug tool bar debug_toolbar.init_app(app) # initialize SQLAlchemy db.init_app(app) login_manager.init_app(app) # register our blueprints app.register_blueprint(main) app.register_blueprint(user, url_prefix='/user') app.register_blueprint(api, url_prefix='/api') return app
def register_extentions(app): db.init_app(app) Migrate(app, db) login_manager = LoginManager() login_manager.init_app(app) @login_manager.user_loader def user_loader(id): return User.query.get(id) login_manager.login_view = 'front.login'
def create_app(config_obj): """factory function""" app = Flask(__name__) app.config.from_object(config_obj) db.init_app(app) flask_whooshalchemyplus.init_app(app) redis.init_app(app) rq.init_app(app) views.init_app(app) jieba.initialize() return app
def create_app(object_name): """Create the app instance via 'Factory Method'""" # 告诉Flask这是入口有点像是java的@controller效果 app = Flask(__name__) # Get the config from object of DecConfig # 使用 onfig.from_object() 而不使用 app.config['DEBUG'] # 是因为这样可以加载 class DevConfig 的配置变量集合,而不需要一项一项的添加和修改。 # app.config.from_object(DevConfig) # 上面是使用工厂模式之前的样子,Devconfig是写死的 # Set the app config app.config.from_object(object_name) # Import the views module # 1.因为Flask Server 的Route使用main模块中查询路由函数(EG.home)的, # 所以必须将views模块中的视图函数(路由函数)导入到main模块的全局作用域中。 # 2.因为 views 模块中导入了 main.app 对象,而 main 模块又需要导入 views 模块, # 所以在 main.py 导入 views.py 之前一定要先生成 main.app 对象,否则会出现 NameError。 # views = __import__('views') # 重构之前 # Will be load the SQLALCHEMY_DATABASE_URL from config.py to db object db.init_app(app) # Init the Flask-Bcryt via app object # 所以这里我们使用 Bcrypt 哈希算法,这是一种被刻意设计成抵消且缓慢的哈希计算方式,从而极大的加长了暴力破解的时间和成本,以此来保证安全性。 bcrypt.init_app(app) @app.route('/') def index(): return redirect(url_for('blog.home')) # 将新建的蓝图对象 blog_blueprint 注册到 app 中 # 每次新建一个蓝图都需要在这里添加一个 app.register_blueprint(blogs.blog_blueprint) app.register_blueprint(main.main_blueprint) # if __name__ == '__main__': # # Entry the application # app.run() return app
def create_app(config_name='default'): app = Flask(__name__) app.config.from_object(config[config_name]) # config[config_name].init_app(app) mail.init_app(app) bootstrap.init_app(app) moment.init_app(app) login_manager.init_app(app) pagedown.init_app(app) db.init_app(app) with app.app_context(): db.create_all(app=app) from .main import main from .auth import auth app.register_blueprint(main) app.register_blueprint(auth, url_prefix='/auth') return app
def create_app(config_filename): """ Flask application factory :param config_filename: :return: """ app = Flask(__name__) app.config.from_pyfile(config_filename) # Корень приложения root_dir = os.path.dirname(os.path.realpath(__file__)) # Путь к storage app.config['STORAGE_FOLDER'] = root_dir + '/storage/' # Пусть к статике app.config['STATIC_FOLDER'] = root_dir + '/static/' # ОРМ from blog.models import db db.init_app(app) # Импорт моделей, вьюх from blog import views from blog.admin_views import admin # Register blueprint(s) app.register_blueprint(admin) return app
def configure_db(app, db): # Flask-SQLAlchemy db.init_app(app) # Flask-Migrate migrate.init_app(app, db)