sql >> Database teknologi >  >> RDS >> PostgreSQL

SQLAlchemy med standarddataklasse udfylder ikke postgres-database

Siden '' og 0 er respektive standard returnerede værdier af str() og int() funktioner, kan du bruge følgende kode til at indsætte disse standardindstillinger:

@dataclass
class Person:
    id: int = None
    name: str = field(default_factory=str)
    age: int = field(default_factory=int)
    hobbies: List[str] = field(default_factory=list)
    birthday: datetime = field(default_factory=datetime)

Desværre, af en eller anden grund, ved at bruge default parameter for field() funktionen virker ikke, som vi kunne forvente (kan være en fejl i dataclasses backport eller en misforståelse...). Men du kan stadig bruge default_factory for at angive værdier, der er forskellige fra '' og 0 ved hjælp af lambda :

@dataclass
class Person:
    id: int = None
    name: str = field(default_factory=lambda: 'john doe')
    age: int = field(default_factory=lambda: 77)
    hobbies: List[str] = field(default_factory=list)
    birthday: datetime = field(default_factory=datetime)


  1. InnoDB MYSQL understøttes ikke på webserveren

  2. oracle får alle matchede forekomster fra en kolonne

  3. C# DateTime MySQL-kommando

  4. Hvad er omfanget af CONTEXT_INFO i SQL Server?