57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
# -*- encoding: utf-8 -*-
|
|
"""
|
|
Copyright (c) 2019 - present AppSeed.us
|
|
"""
|
|
|
|
from flask import Flask, url_for
|
|
from flask_login import LoginManager
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
from importlib import import_module
|
|
from logging import basicConfig, DEBUG, getLogger, StreamHandler
|
|
from os import path
|
|
from babel.dates import format_date, format_datetime, format_time
|
|
|
|
db = SQLAlchemy()
|
|
login_manager = LoginManager()
|
|
|
|
def register_extensions(app):
|
|
db.init_app(app)
|
|
login_manager.init_app(app)
|
|
|
|
def register_blueprints(app):
|
|
# from app import base
|
|
# app.register_blueprint(base, url_prefix="/base")
|
|
# from app import home
|
|
# app.register_blueprint(home, url_prefix="/home")
|
|
for module_name in ('base', 'home'):
|
|
module = import_module('app.{}.routes'.format(module_name))
|
|
app.register_blueprint(module.blueprint)
|
|
|
|
def configure_database(app):
|
|
|
|
@app.before_first_request
|
|
def initialize_database():
|
|
db.create_all()
|
|
|
|
@app.teardown_request
|
|
def shutdown_session(exception=None):
|
|
db.session.remove()
|
|
|
|
def create_app(config):
|
|
app = Flask(__name__, static_folder='base/static')
|
|
app.config.from_object(config)
|
|
register_extensions(app)
|
|
register_blueprints(app)
|
|
configure_database(app)
|
|
|
|
app.jinja_env.add_extension("jinja2.ext.loopcontrols")
|
|
|
|
@app.template_filter()
|
|
def format_dt(value, format='medium'):
|
|
if format == 'full':
|
|
format="MM/dd/yyyy HH:mm"
|
|
elif format == 'medium':
|
|
format="MM/dd/yyyy"
|
|
return format_datetime(value,format)
|
|
return app
|