PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

SQLAlchemy dengan default dataclass tidak mengisi database postgres

Sejak '' dan 0 masing-masing adalah nilai default yang dikembalikan dari str() dan int() fungsi, Anda dapat menggunakan kode berikut untuk memasukkan default tersebut:

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

Sayangnya, untuk beberapa alasan, menggunakan default parameter field() fungsi tidak bekerja seperti yang kita harapkan (bisa jadi bug dari dataclasses backport atau kesalahpahaman...). Tetapi Anda masih dapat menggunakan default_factory untuk menentukan nilai yang berbeda dari '' dan 0 menggunakan 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nilai NULL fungsi Postgres untuk baris yang mereferensikan BARU

  2. ubah database (postgresql) dengan python menggunakan psycopg2 secara dinamis

  3. Agregat PostgreSQL khusus untuk rata-rata melingkar

  4. Temukan n Tetangga Terdekat untuk Titik tertentu menggunakan PostGIS?

  5. Tidak dapat terhubung ke PostgreSQL melalui database nodejs secara lokal tiba-tiba berhenti bekerja di mac