from .bootstrap import bootstrap from .config import DevelopmentConfig as Config from .csrf import csrf from .database import db from .login_manager import login_manager from .mail import mail from flask import Flask from flask_wtf.csrf import CSRFError from flask.json import jsonify from werkzeug.middleware.proxy_fix import ProxyFix from datetime import datetime from .admin.views import admin from .api.views import api from .common.views import common from .quiz.views import quiz def create_app(): app = Flask(__name__) app.config.from_object(Config()) app.wsgi_app = ProxyFix(app.wsgi_app, x_proto= 1, x_host= 1) # bootstrap.init_app(app) # csrf.init_app(app) # db.init_app(app) # login_manager.init_app(app) # mail.init_app(app) # login_manager.login_view = 'admin._login' # @login_manager.user_loader # def _load_user(user_id): # pass # @app.errorhandler(404) # def _404_handler(error): # return jsonify({'error':'404 — Not Found'}), 404 # @app.errorhandler(CSRFError) # def _csrf_handler(): # return jsonify({'error':'Could not validate a secure connection.'}), 403 # @app.context_processor # def _now(): # return {'now': datetime.utcnow()} app.register_blueprint(admin, url_prefix='/admin') app.register_blueprint(api, url_prefix='/api') app.register_blueprint(common) app.register_blueprint(quiz) return app