diff options
| author | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2019-03-18 16:57:31 +0000 |
|---|---|---|
| committer | Gertjan van den Burg <gertjanvandenburg@gmail.com> | 2019-03-18 16:57:31 +0000 |
| commit | a3184c5d142848b5147811ed246e39545e978805 (patch) | |
| tree | c3b1d0e87dcbc2c8aad3ed531c81f9bc4117a992 /app/__init__.py | |
| parent | use bootstrap (diff) | |
| download | AnnotateChange-a3184c5d142848b5147811ed246e39545e978805.tar.gz AnnotateChange-a3184c5d142848b5147811ed246e39545e978805.zip | |
refactor
Diffstat (limited to 'app/__init__.py')
| -rw-r--r-- | app/__init__.py | 115 |
1 files changed, 71 insertions, 44 deletions
diff --git a/app/__init__.py b/app/__init__.py index 3ee019e..9908dd8 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -9,55 +9,82 @@ from logging.handlers import SMTPHandler, RotatingFileHandler from flask import Flask from flask_bootstrap import Bootstrap -from flask_sqlalchemy import SQLAlchemy -from flask_migrate import Migrate from flask_login import LoginManager from flask_mail import Mail +from flask_migrate import Migrate +from flask_sqlalchemy import SQLAlchemy from .config import Config -app = Flask(__name__) -app.config.from_object(Config) -db = SQLAlchemy(app) -migrate = Migrate(app, db) -login = LoginManager(app) -login.login_view = "login" -mail = Mail(app) -bootstrap = Bootstrap(app) - -from app import routes, models, errors - -if not app.debug: - if app.config["MAIL_SERVER"]: - auth = None - if app.config["MAIL_USERNAME"] or app.config["MAIL_PASSWORD"]: - auth = (app.config["MAIL_USERNAME"], app.config["MAIL_PASSWORD"]) - secure = None - if app.config["MAIL_USE_TLS"]: - secure = () - mail_handler = SMTPHandler( - mailhost=(app.config["MAIL_SERVER"], app.config["MAIL_PORT"]), - fromaddr="no-reply@" + app.config["MAIL_SERVER"], - toaddrs=app.config["ADMINS"], - subject="AnnotateChange Failure", - credentials=auth, - secure=secure, +db = SQLAlchemy() +migrate = Migrate() +login = LoginManager() +login.login_view = "auth.login" +mail = Mail() +bootstrap = Bootstrap() + + +def create_app(config_class=Config): + app = Flask(__name__) + app.config.from_object(config_class) + + db.init_app(app) + migrate.init_app(app, db) + login.init_app(app) + mail.init_app(app) + bootstrap.init_app(app) + + from app.errors import bp as errors_bp + + app.register_blueprint(errors_bp) + + from app.auth import bp as auth_bp + + app.register_blueprint(auth_bp, url_prefix="/auth") + + from app.main import bp as main_bp + + app.register_blueprint(main_bp) + + if not app.debug: + if app.config["MAIL_SERVER"]: + auth = None + if app.config["MAIL_USERNAME"] or app.config["MAIL_PASSWORD"]: + auth = ( + app.config["MAIL_USERNAME"], + app.config["MAIL_PASSWORD"], + ) + secure = None + if app.config["MAIL_USE_TLS"]: + secure = () + mail_handler = SMTPHandler( + mailhost=(app.config["MAIL_SERVER"], app.config["MAIL_PORT"]), + fromaddr="no-reply@" + app.config["MAIL_SERVER"], + toaddrs=app.config["ADMINS"], + subject="AnnotateChange Failure", + credentials=auth, + secure=secure, + ) + mail_handler.setLevel(logging.ERROR) + app.logger.addHandler(mail_handler) + + if not os.path.exists("logs"): + os.mkdir("logs") + file_handler = RotatingFileHandler( + "logs/annotatechange.log", maxBytes=10240, backupCount=10 ) - mail_handler.setLevel(logging.ERROR) - app.logger.addHandler(mail_handler) - - if not os.path.exists("logs"): - os.mkdir("logs") - file_handler = RotatingFileHandler( - "logs/annotatechange.log", maxBytes=10240, backupCount=10 - ) - file_handler.setFormatter( - logging.Formatter( - "%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]" + file_handler.setFormatter( + logging.Formatter( + "%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]" + ) ) - ) - file_handler.setLevel(logging.INFO) - app.logger.addHandler(file_handler) + file_handler.setLevel(logging.INFO) + app.logger.addHandler(file_handler) + + app.logger.setLevel(logging.INFO) + app.logger.info("AnnotateChange startup") + + return app + - app.logger.setLevel(logging.INFO) - app.logger.info("AnnotateChange startup") +from app import models |
