Uno-Dan

Untitled

Jul 11th, 2020
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.63 KB | None | 0 0
  1.  
  2. import os
  3. import logging
  4.  
  5. from logging.handlers import SMTPHandler, RotatingFileHandler
  6. from config import Config
  7. from flask import Flask, request, current_app
  8. from flask_sqlalchemy import SQLAlchemy
  9. from flask_migrate import Migrate
  10. from flask_login import LoginManager
  11. from flask_mail import Mail
  12. from flask_bootstrap import Bootstrap
  13. from flask_moment import Moment
  14. from flask_babel import Babel, lazy_gettext as _l
  15.  
  16. db = SQLAlchemy()
  17. migrate = Migrate()
  18. login = LoginManager()
  19. login.login_view = 'auth.login'
  20. login.login_message = _l('Please log in to access this page.')
  21. mail = Mail()
  22. bootstrap = Bootstrap()
  23. moment = Moment()
  24. babel = Babel()
  25.  
  26.  
  27. def create_app(config_class=Config):
  28.     app = Flask(__name__)
  29.     app.config.from_object(config_class)
  30.  
  31.     db.init_app(app)
  32.     migrate.init_app(app, db)
  33.     login.init_app(app)
  34.     mail.init_app(app)
  35.     bootstrap.init_app(app)
  36.     moment.init_app(app)
  37.     babel.init_app(app)
  38.  
  39.     from app.errors import bp as errors_bp
  40.     app.register_blueprint(errors_bp)
  41.  
  42.     from app.auth import bp as auth_bp
  43.     app.register_blueprint(auth_bp, url_prefix='/auth')
  44.  
  45.     from app.base import bp as base_bp
  46.     app.register_blueprint(base_bp, url_prefix='/base')
  47.  
  48.     if not app.debug and not app.testing:
  49.         if app.config['MAIL_SERVER']:
  50.             auth = None
  51.             if app.config['MAIL_USERNAME'] or app.config['MAIL_PASSWORD']:
  52.                 auth = (app.config['MAIL_USERNAME'], app.config['MAIL_PASSWORD'])
  53.             secure = None
  54.             if app.config['MAIL_USE_TLS']:
  55.                 secure = ()
  56.             mail_handler = SMTPHandler(
  57.                 mailhost=(app.config['MAIL_SERVER'], app.config['MAIL_PORT']),
  58.                 fromaddr='no-reply@' + app.config['MAIL_SERVER'],
  59.                 toaddrs=app.config['ADMINS'], subject='Microblog Failure',
  60.                 credentials=auth, secure=secure)
  61.             mail_handler.setLevel(logging.ERROR)
  62.             app.logger.addHandler(mail_handler)
  63.  
  64.         if not os.path.exists('logs'):
  65.             os.mkdir('logs')
  66.         file_handler = RotatingFileHandler('logs/microblog.log', maxBytes=10240, backupCount=10)
  67.         file_handler.setFormatter(logging.Formatter(
  68.             '%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]'))
  69.         file_handler.setLevel(logging.INFO)
  70.         app.logger.addHandler(file_handler)
  71.  
  72.         app.logger.setLevel(logging.INFO)
  73.         app.logger.info('Microblog startup')
  74.  
  75.     return app
  76.  
  77.  
  78. @babel.localeselector
  79. def get_locale():
  80.     return request.accept_languages.best_match(current_app.config['LANGUAGES'])
  81.  
  82.  
  83. from app import models
Add Comment
Please, Sign In to add comment