2023-02-15 15:00:30 +03:00
|
|
|
"""Flask web application main script"""
|
2023-02-14 18:53:57 +03:00
|
|
|
|
2023-02-15 15:00:30 +03:00
|
|
|
import os
|
|
|
|
import secrets
|
2023-02-14 18:53:57 +03:00
|
|
|
from pathlib import Path
|
|
|
|
|
|
|
|
from flask import Flask
|
|
|
|
|
|
|
|
|
2023-02-15 15:00:30 +03:00
|
|
|
def create_app() -> Flask:
|
|
|
|
"""Flask app factory function"""
|
2023-02-14 18:53:57 +03:00
|
|
|
|
2023-02-15 15:00:30 +03:00
|
|
|
root = Path('..')
|
|
|
|
static = str(root / 'static')
|
|
|
|
tmpl = str(root / 'templates')
|
2023-02-14 18:53:57 +03:00
|
|
|
|
2023-02-15 15:00:30 +03:00
|
|
|
app = Flask(
|
|
|
|
__name__,
|
|
|
|
static_folder=static,
|
|
|
|
template_folder=tmpl,
|
|
|
|
instance_relative_config=True,
|
|
|
|
)
|
|
|
|
app.config['SECRET_KEY'] = os.getenv(
|
|
|
|
'SECRET_KEY',
|
|
|
|
secrets.token_hex(32),
|
|
|
|
)
|
|
|
|
|
|
|
|
try:
|
|
|
|
os.makedirs(app.instance_path)
|
|
|
|
except OSError:
|
|
|
|
pass
|
|
|
|
|
|
|
|
return app
|