console/app/__init__.py
2015-12-01 02:46:00 +03:00

91 lines
2.4 KiB
Python

# coding: utf-8
# import ConfigParser
from flask import g
from flask import Flask
from flask import request
from flask import render_template
from app.cloud.views import viewHomepage
from app.cloud.views.account import viewAccount
from app.cloud.views.tasks import viewTasks
from app.cloud.views.payments import viewPayments
from app.cloud.views.containers import viewContainers
from app.cloud.views.administrator import viewAdministrator
from app.cloud.views.api import viewAPI
from app.cloud.views.server_api import viewServerAPI
from app.settings import settings
from app import models
from app.models import database
app = Flask(__name__)
# app.config['SERVER_NAME'] = settings.get('Application', 'SERVER_NAME')
app.config['DEBUG'] = settings.getboolean('Application', 'DEBUG')
app.config['SECRET_KEY'] = settings.get("Application", "SECRET_KEY")
# /
app.register_blueprint(viewHomepage)
# /tasks
app.register_blueprint(viewTasks)
# /containers
app.register_blueprint(viewContainers)
# /id
app.register_blueprint(viewAccount)
# /payments
app.register_blueprint(viewPayments)
# /api
app.register_blueprint(viewServerAPI)
# /administrator
app.register_blueprint(viewAdministrator)
@app.errorhandler(404)
def page_not_found(e):
return render_template('errors/404.html'), 404
@app.errorhandler(403)
def page_not_found(e):
return render_template('errors/403.html'), 403
@app.errorhandler(410)
def page_not_found(e):
return render_template('errors/410.html'), 410
@app.errorhandler(500)
def page_not_found(e):
print e
return render_template('errors/500.html'), 500
@app.before_request
def before_request():
# app.logger.debug("db.connect")
g.errors = {'total': 0, 'items': []}
g.settings = dict()
try:
database.connect()
except Exception as e:
# TODO: code to email alert
print e
print request.path
# g.endpoint = request.endpoint.replace('.', '/')
return render_template('errors/500.html'), 500
# извлекаем настройки и определяем их в глобальную переменную
for setting in models.Settings.select(models.Settings.key, models.Settings.val).execute():
g.settings[setting.key] = setting.val
@app.after_request
def after_request(response):
# app.logger.debug("db.close")
try:
database.close()
except Exception as e:
# TODO: code to email alert
print e
return response