31 lines
785 B
Python
31 lines
785 B
Python
from flask import Flask
|
|
from app.config import Config
|
|
from app.extensions import db, mail, limiter
|
|
from werkzeug.middleware.proxy_fix import ProxyFix
|
|
import logging
|
|
|
|
def create_app(config_class=Config):
|
|
app = Flask(__name__)
|
|
app.config.from_object(config_class)
|
|
|
|
app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1)
|
|
|
|
gunicorn_logger = logging.getLogger("gunicorn.error")
|
|
app.logger.handlers = gunicorn_logger.handlers
|
|
app.logger.setLevel(gunicorn_logger.level)
|
|
|
|
# Initialize extensions
|
|
db.init_app(app)
|
|
mail.init_app(app)
|
|
limiter.init_app(app)
|
|
|
|
# Register Blueprints
|
|
from app.routes import bp as main_bp
|
|
app.register_blueprint(main_bp)
|
|
|
|
# Create DB tables
|
|
with app.app_context():
|
|
db.create_all()
|
|
|
|
return app
|