38 lines
745 B
Python
38 lines
745 B
Python
|
|
"""
|
||
|
|
app/__init__.py
|
||
|
|
===============
|
||
|
|
Flask application factory.
|
||
|
|
|
||
|
|
Usage
|
||
|
|
-----
|
||
|
|
from app import create_app
|
||
|
|
flask_app = create_app()
|
||
|
|
|
||
|
|
Gunicorn (wsgi.py) calls create_app() once at startup.
|
||
|
|
The dev-server entry point (run.py) does the same.
|
||
|
|
"""
|
||
|
|
|
||
|
|
from flask import Flask
|
||
|
|
|
||
|
|
from .config import BASE_DIR, MEDIA_ROOT
|
||
|
|
from .db import init_db
|
||
|
|
from .routes import register_routes
|
||
|
|
|
||
|
|
|
||
|
|
def create_app() -> Flask:
|
||
|
|
"""
|
||
|
|
Create and return a configured Flask application instance.
|
||
|
|
"""
|
||
|
|
flask_app = Flask(
|
||
|
|
__name__,
|
||
|
|
template_folder=str(BASE_DIR / 'templates'),
|
||
|
|
static_folder=str(BASE_DIR / 'static'),
|
||
|
|
)
|
||
|
|
|
||
|
|
# Initialise the SQLite settings database
|
||
|
|
init_db()
|
||
|
|
|
||
|
|
register_routes(flask_app)
|
||
|
|
|
||
|
|
return flask_app
|