Какой тип я использую для SQLalchemy Declarative_base? - PullRequest
0 голосов
/ 10 октября 2019

Я хотел бы использовать тип для своих базовых классов SQLAlchemy, но не могу найти определения типов.

Например:

from sqlalchemy.types import BigInteger
from sqlalchemy.schema import Column, Index
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):

    __tablename__ = "users"

    id_user = Column(
        BigInteger, primary_key=True, autoincrement=True, nullable=False, index=True
    )
    username = Column(String, unique=True, index=True)

Теперь при обращении к этому классу пользователяЯ не знаю, какой тип использовать. Кроме того, если бы я хотел иметь словарь, содержащий отображение таблицы_имя: модель, например:

from typing import Any, Dict

table_model_map: Dict[str, Any] = {
    "users": User,
    "another_table": AnotherTableModel,
}

Как бы я определил типы для этого Dict

Большое спасибо за помощь мнепойми это!

1 Ответ

0 голосов
/ 17 октября 2019

Base - это тип, от которого наследуются все ваши модели (которые также являются типами), поэтому

Dict[str, Base]
...