aboutsummaryrefslogtreecommitdiff
path: root/app/__init__.py
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2019-03-18 16:57:31 +0000
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2019-03-18 16:57:31 +0000
commita3184c5d142848b5147811ed246e39545e978805 (patch)
treec3b1d0e87dcbc2c8aad3ed531c81f9bc4117a992 /app/__init__.py
parentuse bootstrap (diff)
downloadAnnotateChange-a3184c5d142848b5147811ed246e39545e978805.tar.gz
AnnotateChange-a3184c5d142848b5147811ed246e39545e978805.zip
refactor
Diffstat (limited to 'app/__init__.py')
-rw-r--r--app/__init__.py115
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