Files
Beacon/app/__init__.py

42 lines
1.0 KiB
Python

from flask import Flask
from dotenv import load_dotenv
import os
import urllib.parse
from app.controllers.auth_controller import auth
from app.models import db
from flask_login import LoginManager
from app.models.users import User
from app.routes import main as main_blueprint
load_dotenv()
def create_app():
app = Flask(__name__, template_folder='views')
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY')
db_username = os.getenv('DB_USERNAME')
db_password = urllib.parse.quote_plus(os.getenv('DB_PASSWORD'))
db_host = os.getenv('DB_HOST')
db_port = os.getenv('DB_PORT')
db_name = os.getenv('DB_NAME')
db_url = f"mysql://{db_username}:{db_password}@{db_host}:{db_port}/{db_name}"
app.config['SQLALCHEMY_DATABASE_URI'] = db_url
db.init_app(app)
login_manager = LoginManager()
login_manager.init_app(app)
@login_manager.user_loader
def load_user(id):
return User.query.get(int(id))
app.register_blueprint(auth)
app.register_blueprint(main_blueprint)
return app