sql >> Database >  >> RDS >> PostgreSQL

SQLAlchemy met standaard dataklasse die de postgres-database niet vult

Sinds '' en 0 zijn respectievelijk standaard geretourneerde waarden van str() en int() functies, kunt u de volgende code gebruiken om die standaardwaarden in te voegen:

@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)

Helaas, om de een of andere reden, met behulp van default parameter van field() functie werkt niet zoals we zouden verwachten (kan een bug zijn van de dataclasses achterpoortje of een misverstand...). Maar je kunt nog steeds de default_factory . gebruiken om waarden te specificeren die verschillen van '' en 0 met behulp van 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. Hoe snel 3 willekeurige records SELECTEREN uit een 30k MySQL-tabel met een waar-filter door een enkele query?

  2. Inner join en where-clausule toevoegen aan INSERT INTO ON DUPLICATE KEY UPDATE

  3. MySQL in-waar is traag?

  4. MySQL-roottoegang vanaf alle hosts