Files
pi-weekly-newspaper/app.py
cottongin 5c924f7dba feat: full integration — app.py wiring, scheduler startup, route registration, README
- Wire blueprints and scheduler into create_app()
- Add start_scheduler param to skip scheduler in tests
- Fix Setting.get/set to use modern db.session.get()
- Remove unused imports from conftest and models
- Add README with quick start and usage guide

Made-with: Cursor
2026-04-06 15:22:38 -04:00

43 lines
1.1 KiB
Python

import logging
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
db = SQLAlchemy()
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(name)s %(levelname)s %(message)s")
def create_app(start_scheduler=True):
app = Flask(__name__)
app.config.from_object(config)
app.config["SECRET_KEY"] = os.environ.get("SECRET_KEY", os.urandom(24))
os.makedirs(config.DATA_DIR, exist_ok=True)
os.makedirs(config.IMAGES_DIR, exist_ok=True)
os.makedirs(config.ISSUES_DIR, exist_ok=True)
db.init_app(app)
with app.app_context():
from src import models # noqa: F401
db.create_all()
from src.routes import register_blueprints
register_blueprints(app)
if start_scheduler:
from src.scheduler import SchedulerManager
scheduler_mgr = SchedulerManager(app)
scheduler_mgr.start()
app.config["SCHEDULER_MANAGER"] = scheduler_mgr
return app
if __name__ == "__main__":
app = create_app()
app.run(host="0.0.0.0", port=5000, debug=False)