Updated CRUDkit
This commit is contained in:
parent
f1fa1f2407
commit
571583bcf4
6 changed files with 186 additions and 24 deletions
|
|
@ -3,25 +3,28 @@ import os
|
|||
|
||||
from flask import Flask
|
||||
|
||||
from crudkit import ProdConfig
|
||||
from crudkit.api.flask_api import generate_crud_blueprint
|
||||
from crudkit.core.service import CRUDService
|
||||
from crudkit.integrations.flask import init_app
|
||||
|
||||
from .config import DevConfig
|
||||
from .db import init_db, create_all_tables, get_session
|
||||
|
||||
def create_app(config_cls=DevConfig) -> Flask:
|
||||
app = Flask(__name__)
|
||||
app.config.from_object(config_cls)
|
||||
|
||||
init_db(
|
||||
app.config["DATABASE_URL"],
|
||||
config_cls.engine_kwargs(),
|
||||
config_cls.session_kwargs()
|
||||
)
|
||||
runtime = init_app(app, config=ProdConfig)
|
||||
|
||||
from . import models as _models
|
||||
create_all_tables()
|
||||
session = get_session()
|
||||
_models.Base.metadata.create_all(bind=runtime.engine)
|
||||
|
||||
Session = app.extensions["crudkit"].get("Session")
|
||||
if Session is None:
|
||||
SessionFactory = runtime.session_factory
|
||||
Session = SessionFactory
|
||||
|
||||
session = Session
|
||||
|
||||
area_service = CRUDService(_models.Area, session)
|
||||
brand_service = CRUDService(_models.Brand, session)
|
||||
|
|
@ -45,8 +48,14 @@ def create_app(config_cls=DevConfig) -> Flask:
|
|||
app.register_blueprint(generate_crud_blueprint(_models.WorkLog, work_log_service), url_prefix="/api/work_log")
|
||||
app.register_blueprint(generate_crud_blueprint(_models.WorkNote, work_note_service), url_prefix="/api/work_note")
|
||||
|
||||
@app.teardown_appcontext
|
||||
def _remove_session(_exc):
|
||||
sess = app.extensions["crudkit"].get("Session")
|
||||
if sess is not None:
|
||||
sess.remove()
|
||||
|
||||
@app.get("/")
|
||||
def index():
|
||||
return {"status": "ok", "db": app.config["DATABASE_URL"]}
|
||||
return {"status": "ok", "db": str(runtime.engine.url)}
|
||||
|
||||
return app
|
||||
Loading…
Add table
Add a link
Reference in a new issue