Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import logging
- import os
- from app_config import config
- from dbmodels import User
- from dbmodels.database import db_session, engine
- from flask import Flask, redirect, url_for
- from flask.ext.assets import Bundle, Environment
- from flask.ext.bootstrap import Bootstrap
- from flask.ext.login import LoginManager
- from flask.ext.mail import Mail
- from flask.ext.moment import Moment
- from flask_jsglue import JSGlue
- from webapp.extensions import celery
- from webapp.helpers import flask_handler
- try:
- import pymysql
- pymysql.install_as_MySQLdb()
- except ImportError:
- pass
- os.environ['LD_LIBRARY_PATH'] = os.getcwd()
- bootstrap = Bootstrap()
- mail = Mail()
- moment = Moment()
- assets = Environment()
- jsglue = JSGlue()
- login_manager = LoginManager()
- login_manager.session_protection = 'strong'
- login_manager.login_view = 'auth.login'
- def create_app(config_name=os.environ['WEBAPP_CONFIG']):
- # print 'about to create webapp.. with config_name', config_name
- webapp = Flask(__name__)
- webapp.config.from_object(config[config_name])
- webapp.config['PROPOGATE_EXCEPTIONS'] = True
- config[config_name].init_app(webapp)
- webapp.logger.setLevel(logging.DEBUG) # use the native logger of flask
- handler = logging.handlers.RotatingFileHandler(
- 'flasklog.log',
- maxBytes=1024 * 1024 * 100,
- backupCount=20
- )
- webapp.logger.addHandler(flask_handler)
- celery.init_app(webapp)
- bootstrap.init_app(webapp)
- mail.init_app(webapp)
- moment.init_app(webapp)
- assets.init_app(webapp)
- login_manager.init_app(webapp)
- jsglue.init_app(webapp)
- @webapp.route('/', methods=['GET'])
- def home_redirect():
- return redirect(url_for('main.dashboard'))
- @webapp.teardown_request
- def shutdown_session(exception=None):
- # print 'app has done been torn down'
- db_session.remove()
- @login_manager.user_loader
- def load_user(user_id):
- return User.query.get(int(user_id))
- g_css = Bundle(
- 'assets/global/css/fonts.css',
- 'assets/global/plugins/font-awesome/css/font-awesome.min.css',
- 'assets/global/plugins/simple-line-icons/simple-line-icons.min.css',
- 'assets/global/plugins/bootstrap/css/bootstrap.min.css',
- 'assets/global/plugins/uniform/css/uniform.default.min.css',
- 'assets/global/plugins/toastr/toastr.css',
- 'assets/global/css/plugins.css',
- output='gen/g_css.css')
- assets.register('g_css', g_css)
- form_css = Bundle(
- 'assets/global/plugins/bootstrap-switch/css/bootstrap-switch.min.css',
- 'assets/global/plugins/select2/select2.min.css',
- 'assets/global/plugins/jquery-multi-select/css/multi-select.css',
- 'assets/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker.min.css',
- 'assets/global/plugins/bootstrap-daterangepicker/css/daterangepicker-bs3.css',
- 'assets/global/plugins/summernote/summernote.css',
- output='gen/form_css.css')
- assets.register('form_css', form_css)
- themecomponents_css = Bundle(
- 'assets/global/css/components.css',
- output='gen/themecomponents_css.css')
- assets.register('themecomponents_css', themecomponents_css)
- theme_css = Bundle(
- # 'assets/layout/css/layout0.css',
- 'assets/layout/css/layout.css',
- # 'assets/layout/css/custom.css',
- output='gen/theme_css.css')
- assets.register('theme_css', theme_css)
- themecolor_css = Bundle(
- 'assets/layout/css/themes/blue.css',
- output='gen/themecolor_css.css')
- assets.register('themecolor_css', themecolor_css)
- g_js = Bundle(
- 'assets/global/plugins/jquery-2.1.3.min.js',
- 'assets/global/plugins/jquery-migrate-1.2.1.min.js',
- 'assets/global/plugins/jquery-ui/jquery-ui.min.js',
- 'assets/global/plugins/bootstrap/js/bootstrap.min.js',
- 'assets/global/plugins/jquery-slimscroll/jquery.slimscroll.min.js',
- 'assets/global/plugins/jquery.blockui.min.js',
- 'assets/global/plugins/jquery.cokie.min.js',
- 'assets/global/plugins/uniform/jquery.uniform.min.js',
- 'assets/global/plugins/moment/moment.min.js',
- 'assets/global/plugins/date/date.js',
- 'assets/global/plugins/toastr/toastr.min.js',
- 'assets/global/scripts/metronic.js',
- 'assets/layout/scripts/layout.js',
- output='gen/g_js.js')
- assets.register('g_js', g_js)
- form_js = Bundle(
- 'assets/global/plugins/jquery-validation/jquery.validate.min.js',
- 'assets/global/plugins/jquery-inputmask/jquery.inputmask.bundle.min.js',
- 'assets/global/plugins/jquery-inputmask/jquery.inputmask.additional-methods.min.js',
- 'assets/global/plugins/jquery-inputmask/jquery.input-ip-address-control-1.0.min.js',
- 'assets/global/plugins/bootstrap-maxlength/bootstrap-maxlength.min.js',
- 'assets/global/plugins/bootstrap-touchspin/bootstrap.touchspin.min.js',
- 'assets/global/plugins/select2/select2.min.js',
- 'assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js',
- 'assets/global/plugins/jquery-multi-select/js/jquery.multi-select.js',
- 'assets/global/plugins/summernote/summernote.js',
- 'assets/global/plugins/bootstrap-datepicker/js/bootstrap-datepicker.min.js',
- 'assets/global/plugins/bootstrap-daterangepicker/js/daterangepicker.js',
- 'assets/global/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js',
- 'assets/global/plugins/bootstrap-wizard/jquery.bootstrap.wizard.js',
- output='gen/form_js.js')
- assets.register('form_js', form_js)
- dt_css = Bundle(
- 'assets/global/plugins/datatables10/media/css/dataTables.bootstrap.css',
- output='gen/dt_css.css')
- assets.register('dt_css', dt_css)
- dt_js = Bundle(
- 'assets/global/plugins/datatables10/media/js/jquery.dataTables.js',
- 'assets/global/plugins/datatables10/media/js/dataTables.bootstrap.js',
- 'assets/global/plugins/bootstrap-datepicker/js/bootstrap-datepicker.min.js',
- 'assets/global/scripts/datatable.js',
- output='gen/dt_js.js')
- assets.register('dt_js', dt_js)
- from .mod_tests import tests as tests_blueprint
- from .mod_myadmin import myadmin as myadmin_blueprint
- from .mod_main import main as main_blueprint
- from .mod_bepassets import bepassets as assets_blueprint
- from .mod_auth import auth as auth_blueprint
- webapp.register_blueprint(tests_blueprint, url_prefix='/tests')
- webapp.register_blueprint(myadmin_blueprint, url_prefix='/myadmin')
- webapp.register_blueprint(main_blueprint, url_prefix='/main')
- webapp.register_blueprint(assets_blueprint, url_prefix='/bepassets')
- webapp.register_blueprint(auth_blueprint, url_prefix='/auth')
- return webapp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement