console/SWSCloudCore/__init__.py

101 lines
2.8 KiB
Python
Raw Normal View History

2015-11-26 23:50:33 +03:00
# coding: utf-8
2016-04-02 00:42:22 +03:00
from flask import Flask, g, render_template, request
2015-12-23 02:31:43 +03:00
from flask_babel import Babel
from flaskext.markdown import Markdown
2015-11-26 23:50:33 +03:00
2016-04-02 00:42:22 +03:00
from SWSCloudCore.views import viewHomepage
from SWSCloudCore.views.account import viewAccount
from SWSCloudCore.views.administrator import viewAdministrator
from SWSCloudCore.views.api import viewAPI
from SWSCloudCore.views.containers import viewContainers
from SWSCloudCore.views.documents import viewDocuments
from SWSCloudCore.views.kb import viewKB
from SWSCloudCore.views.server_api import viewServerAPI
from SWSCloudCore.views.support import viewSupport
from SWSCloudCore.views.tasks import viewTasks
from SWSCloudCore.views.payments import viewPayments
from SWSCloudCore import models
from SWSCloudCore.models import database
from SWSCloudCore.settings import settings
2015-11-26 23:50:33 +03:00
2016-01-18 18:47:05 +03:00
app = Flask(__name__, static_folder='static', static_url_path='')
2015-11-26 23:50:33 +03:00
# 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")
2015-12-12 17:29:45 +03:00
Markdown(app)
2015-12-23 02:31:43 +03:00
babel = Babel(app)
2015-12-12 17:29:45 +03:00
2015-11-26 23:50:33 +03:00
# /
app.register_blueprint(viewHomepage)
2015-12-19 13:56:40 +03:00
app.register_blueprint(viewSupport)
2015-12-23 02:31:43 +03:00
app.register_blueprint(viewKB)
app.register_blueprint(viewDocuments)
app.register_blueprint(viewAPI)
2015-11-26 23:50:33 +03:00
# /tasks
app.register_blueprint(viewTasks)
# /containers
app.register_blueprint(viewContainers)
# /id
app.register_blueprint(viewAccount)
# /payments
app.register_blueprint(viewPayments)
# /api
2015-12-01 02:45:57 +03:00
app.register_blueprint(viewServerAPI)
2015-11-26 23:50:33 +03:00
# /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
# извлекаем настройки и определяем их в глобальную переменную
2015-12-01 02:45:57 +03:00
for setting in models.Settings.select(models.Settings.key, models.Settings.val).execute():
2015-11-26 23:50:33 +03:00
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