You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iTi-Flask/copier-template/config.py.jinja

61 lines
1.7 KiB
Django/Jinja

import os
from pathlib import Path
from iti.config import (
BaseConfig,
DevConfig as BaseDevConfig,
ProdConfig as BaseProdConfig,
)
BASE_DIR = Path(__file__).resolve().parent
class DevConfig(BaseDevConfig):
def __init__(self) -> None:
super().__init__()
self.app_name = "{{ project_name }}"
self.base_dir = BASE_DIR
self.file_storage["LOCAL"]["base_path"] = str(BASE_DIR / "runtime" / "uploads")
self.log_dir = str(BASE_DIR / "runtime" / "logs")
class TestConfig(BaseConfig):
def __init__(self) -> None:
super().__init__(
app_name="{{ project_name }}",
app_env="test",
testing=True,
database_url=os.getenv(
"DATABASE_URL",
f"mysql+pymysql://{os.getenv('MYSQL_USER', 'root')}:"
f"{os.getenv('MYSQL_PASSWORD', 'password')}@"
f"{os.getenv('MYSQL_HOST', '127.0.0.1')}:"
f"{os.getenv('MYSQL_PORT', '3306')}/"
f"{os.getenv('MYSQL_DATABASE', 'hsyh_mes_phase2_test')}?charset=utf8mb4",
),
base_dir=BASE_DIR,
ratelimit_enabled=False,
log_file_enabled=False,
)
self.app_name = "{{ project_name }}"
self.base_dir = BASE_DIR
self.log_dir = str(BASE_DIR / "runtime" / "logs")
class ProdConfig(BaseProdConfig):
def __init__(self) -> None:
super().__init__()
self.app_name = "{{ project_name }}"
self.base_dir = BASE_DIR
self.log_dir = str(BASE_DIR / "runtime" / "logs")
config = {
"dev": DevConfig,
"test": TestConfig,
"prod": ProdConfig,
"default": DevConfig,
}