homedocs/app/core/extensions.py
2025-03-30 19:20:13 +02:00

28 lines
877 B
Python

from flask_sqlalchemy import SQLAlchemy
from flask_bcrypt import Bcrypt
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address
from flask_login import LoginManager
from flask_wtf.csrf import CSRFProtect
# Initialize extensions
db = SQLAlchemy()
bcrypt = Bcrypt()
login_manager = LoginManager()
login_manager.login_view = 'auth.login'
csrf = CSRFProtect()
# Initialize rate limiter with fallback storage
try:
limiter = Limiter(
key_func=get_remote_address,
default_limits=["200 per day", "50 per hour"],
storage_uri="memory://" # Use memory storage for development
)
except Exception as e:
print(f"Error initializing rate limiter: {e}")
# Fallback limiter with very basic functionality
limiter = Limiter(
key_func=get_remote_address,
default_limits=["200 per day", "50 per hour"]
)