diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2016-01-31 23:22:33 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2016-02-02 04:23:27 +0100 |
commit | 86f8914def48346d807347c2d43edd543ff4f3e9 (patch) | |
tree | f033a5cbc082f9816e0197c5e4ac5ec48e5569fa | |
parent | 7ac707361e08d381c73a2ff26b47729af03629c6 (diff) | |
download | web-86f8914def48346d807347c2d43edd543ff4f3e9.tar.gz web-86f8914def48346d807347c2d43edd543ff4f3e9.tar.bz2 web-86f8914def48346d807347c2d43edd543ff4f3e9.zip |
Use factory pattern to create app
-rw-r--r-- | accounts/__init__.py | 44 | ||||
-rw-r--r-- | app.wsgi | 3 | ||||
-rwxr-xr-x | manage.py | 4 |
3 files changed, 29 insertions, 22 deletions
diff --git a/accounts/__init__.py b/accounts/__init__.py index 0eb202a..e650586 100644 --- a/accounts/__init__.py +++ b/accounts/__init__.py @@ -2,32 +2,36 @@ from flask import Flask, g, session from models import Service -from utils import * +from utils import get_backend from utils.sessions import EncryptedSessionInterface from utils.login import create_login_manager from views import default, login, admin -app = Flask(__name__) -app.register_blueprint(default.bp) -app.register_blueprint(login.bp) -app.register_blueprint(admin.bp, url_prefix='/admin') -app.config.from_object('accounts.default_settings') -app.config.from_envvar('SPLINE_ACCOUNT_WEB_SETTINGS', silent=True) -app.session_interface = EncryptedSessionInterface() +def create_app(): + app = Flask(__name__) + app.config.from_object('accounts.default_settings') + app.config.from_envvar('SPLINE_ACCOUNT_WEB_SETTINGS', silent=True) -app.all_services = list() -for (name, url) in app.config.get('SERVICES', list()): - cn = name.lower() - app.all_services.append(Service(cn, name, url)) + app.register_blueprint(default.bp) + app.register_blueprint(login.bp) + app.register_blueprint(admin.bp, url_prefix='/admin') + app.session_interface = EncryptedSessionInterface() -app.user_backend = get_backend(app.config['USER_BACKEND'], app) -app.mail_backend = get_backend(app.config['MAIL_BACKEND'], app) + app.user_backend = get_backend(app.config['USER_BACKEND'], app) + app.mail_backend = get_backend(app.config['MAIL_BACKEND'], app) -app.username_blacklist = list() -if app.config.get('USERNAME_BLACKLIST_FILE'): - with open(app.config['USERNAME_BLACKLIST_FILE']) as f: - app.username_blacklist = f.read().split('\n') + app.all_services = list() + for (name, url) in app.config.get('SERVICES', list()): + cn = name.lower() + app.all_services.append(Service(cn, name, url)) -login_manager = create_login_manager() -login_manager.init_app(app) + app.username_blacklist = list() + if app.config.get('USERNAME_BLACKLIST_FILE'): + with open(app.config['USERNAME_BLACKLIST_FILE']) as f: + app.username_blacklist = f.read().split('\n') + + login_manager = create_login_manager() + login_manager.init_app(app) + + return app diff --git a/app.wsgi b/app.wsgi new file mode 100644 index 0000000..cd133e4 --- /dev/null +++ b/app.wsgi @@ -0,0 +1,3 @@ +from accounts import create_app + +app = create_app() @@ -2,7 +2,7 @@ from flask import current_app from flask.ext.script import Command, Manager, Server, Shell, Option -from accounts import app +from accounts import create_app from accounts.utils.console import TablePrinter @@ -44,7 +44,7 @@ class ListUsers(Command): def main(): - manager = Manager(app) + manager = Manager(create_app) manager.add_command( 'runserver', Server(host='::', use_debugger=False)) manager.add_command( |