Source code for zemfrog.loaders.model
import os
from glob import glob
from importlib import import_module
from flask import Flask
from ..helper import get_import_name, get_models
[docs]def loader(app: Flask):
"""
A function to load all your ORM models in the ``models`` directory.
"""
app.models = {}
true = app.config.get("CREATE_DB")
import_name = get_import_name(app)
if import_name:
import_name = import_name.replace(".", "/")
if true:
models = [
x.rsplit(".", 1)[0].replace(os.sep, ".")
for x in glob(import_name + "models/**/*.py", recursive=True)
]
for m in models:
if "__init__" in m:
m = m.replace(".__init__", "")
mod = import_module(m)
app.models[m] = get_models(mod)
app.extensions["sqlalchemy"].db.create_all()