/ Published in: Python
URL: http://www.alejandrob.com.ar/
Expand |
Embed | Plain Text
#!/usr/bin/env python # -*- coding: utf-8 -*- # # Copyright (c) 2011 The Octopus Apps Inc. # Licensed under the Apache License, Version 2.0 (the "License") # # Author: Alejandro M. Bernardis # Email: alejandro.m.bernardis at gmail.com # Created: May 2, 2011 4:07:52 PM # from flask import Flask, request, redirect, url_for, jsonify import modules from .config import Production from .extensions import db #: -- define -- __all__ = ['create_app'] DEFAULT_APP_NAME = __name__ DEFAULT_APP_MODULES = ( (modules.mod_frontend, ''), (modules.mod_error, '/error'), ) #: -- application -- def create_app(name=None, config=None, modules=None): if not name: name = DEFAULT_APP_NAME if not config: config = Production() if not modules: modules = DEFAULT_APP_MODULES #: application app = Flask(name) #: config app.config.from_object(config) app.config.from_envvar('APP_CONFIG', silent=True) #: extensions db.init_app(app) #: errors @app.errorhandler(403) @app.errorhandler(404) @app.errorhandler(500) def error_manager(error): if request.is_xhr: return jsonify(error=error) url = 'error.error_%s' % error.__str__()[0:3] return redirect(url_for(url)) #: modules for module, url_prefix in modules: app.register_module(module, url_prefix=url_prefix) return app
You need to login to post a comment.
