示例#1
0
文件: database.py 项目: leathe/byceps
from sqlalchemy.dialects.postgresql import insert
from sqlalchemy.sql.dml import Insert
from sqlalchemy.sql.schema import Table

from flask_sqlalchemy import BaseQuery, Pagination, SQLAlchemy
from sqlalchemy.dialects.postgresql import JSONB, UUID
from sqlalchemy.orm import Query

F = TypeVar('F')
T = TypeVar('T')

Mapper = Callable[[F], T]

db = SQLAlchemy(session_options={'autoflush': False})

db.JSONB = JSONB


class Uuid(UUID):
    def __init__(self):
        super().__init__(as_uuid=True)


db.Uuid = Uuid


def generate_uuid() -> uuid.UUID:
    """Generate a random UUID (Universally Unique IDentifier)."""
    return uuid.uuid4()

示例#2
0
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from sqlalchemy.dialects.postgresql import UUID, JSON, JSONB
from sqlalchemy.exc import SQLAlchemyError
from sqlalchemy.orm.attributes import InstrumentedAttribute, flag_modified
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
from sqlalchemy_json import mutable_json_type

from .app import app


def add(entity):
    db.session.add(entity)
    return entity


db = SQLAlchemy(app, session_options={'autoflush': False})
migrate = Migrate(app, db)

db.add = add
db.now = datetime.now
db.uuid4 = lambda: str(uuid4())
db.UUID = UUID
db.JSON = mutable_json_type(dbtype=JSON, nested=True)
db.JSONB = mutable_json_type(dbtype=JSONB, nested=True)
db.SQLAlchemyError = SQLAlchemyError
db.InstrumentedAttribute = InstrumentedAttribute
db.flag_modified = flag_modified
db.NoResultFound = NoResultFound
db.MultipleResultsFound = MultipleResultsFound