You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.4 KiB
49 lines
1.4 KiB
from flask import Flask, url_for
|
|
from flask_session import Session
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
from flask_bcrypt import Bcrypt
|
|
from flask_login import LoginManager
|
|
from flask_mail import Mail
|
|
from flask_migrate import Migrate
|
|
from minibase.config import AppConfig
|
|
|
|
# (DATABASE) Definition
|
|
db = SQLAlchemy()
|
|
# (PASSWORD) Hashign Program to save paswords safely
|
|
bcrypt = Bcrypt()
|
|
# (LOGIN) Login manage plugin configuration
|
|
login_manager = LoginManager()
|
|
login_manager.login_view = 'users.login'
|
|
login_manager.login_message_category = 'info' # Boostrap Info Message
|
|
# (EMAIL AGENT) Definition
|
|
mail = Mail()
|
|
session = Session()
|
|
|
|
|
|
def create_app():
|
|
app = Flask(__name__)
|
|
app.config.from_object(AppConfig)
|
|
# (DATABASE) Initialisation
|
|
db.init_app(app)
|
|
# (PASSWORD) Initialisation
|
|
bcrypt.init_app(app)
|
|
# (LOGIN) Initialisation
|
|
login_manager.init_app(app)
|
|
# (EMAIL AGENT) Initialisation
|
|
mail.init_app(app)
|
|
# Session for variable manipulation on server side
|
|
|
|
Migrate(app, db)
|
|
|
|
# import and register all blueprints.
|
|
from minibase.blueprints.main.routes import main
|
|
from minibase.blueprints.user.routes import user
|
|
from minibase.blueprints.errors.routes import errors
|
|
app.register_blueprint(main, url_prefix='/')
|
|
app.register_blueprint(user, url_prefix='/user')
|
|
app.register_blueprint(errors, url_prefix='/errors')
|
|
|
|
|
|
return app
|
|
|