Parameter umum
Semua jenis bidang memiliki seperangkat parameter yang umum.
kunci utama
Primer\ _ key: bool = Salah - > Default itu Salah.
Atur kolom kunci utama di atas meja sehingga kunci asing selalu mengacu pada pk model.
Ini hanya digunakan dalam SQL.
kenaikan otomatis
Autoincrement: bool = Primary\ _ key dan type = = int - > Default True jika kolom adalah kunci primer dan jenisnya adalah Integer, False sebaliknya.
Ini hanya dapat digunakan dengan bidang int / bigint.
Jika sebuah bidang memiliki kenaikan otomatis, itu menjadi opsional.
Digunakan dalam SQL dan Pydantic (mengubah bidang PK ke bidang opsional untuk kenaikan otomatis).
Bisa kosong
Nullable: bool = False - > Default to False untuk semua bidang kecuali bidang relasional.
Jika pengguna menyediakan salah satu dari berikut ini, secara otomatis diubah menjadi Benar:
- Berikan nilai atau fungsi default
- Menyediakan server\ _ nilai atau fungsi default
- Atur kenaikan otomatis pada bidang kunci\ _ Integerprimary
Menentukan apakah suatu bidang bersifat opsional atau diperlukan, digunakan dengan SQL dan Pydantic.
Pengaturan default digunakan untuk pydantic dan sqlalchemy, karena ini adalah pengaturan yang paling umum:
- Nullable = Salah - menunjukkan bahwa kolom database tidak kosong dan bidang diperlukan dalam pydantic
- Nullable = Benar - menunjukkan bahwa kolom database kosong dan bidang opsional dalam pydantic
Jika Anda ingin mengatur pengaturan yang berbeda untuk pydantic dan database, lihat sql\ _ nullable di bawah ini.
!!!Perhatikan bahwa secara default, semua kunci asing juga dapat batal, yang berarti tidak ada model terkait yang diperlukan.
1 | |
SQL\ _ nullable
SQL\ _ nullable: bool = nullable - > default ke nilai nullable (seperti yang dijelaskan di atas).
Menentukan apakah bidang tersebut tidak nol atau hanya nol yang diperbolehkan dalam database.
Gunakan pengaturan ini dalam kombinasi dengan nullable hanya jika Anda ingin mengatur opsi yang berbeda dalam model Pydantic dan database.
Contoh penggunaan mungkin untuk membuat bidang dalam database tidak dapat dibatalkan, tetapi membiarkannya batal dalam pydantic (yaitu menggunakan nilai default server\ _). Ini akan mencegah bidang diperbarui ke nol (seperti pengaturan server\ _ default, Anda tidak dapat memasukkan nilai nol karena nilai default akan digunakan)
default
Default: Any = None - > Default is None.
Jika tidak ada nilai lain yang dilewatkan, nilai default digunakan.
Dalam SQL disebut pada waktu insert, digunakan selama definisi model Pydantic.
Jika bidang memiliki nilai default, itu menjadi opsional.
Anda dapat melewati nilai statis atau panggilan (fungsi, dll.)
Ini digunakan dalam SQL dan Pydantic.
Contoh penggunaan:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
default server
Server\ _ default: Any = Tidak ada - > Default adalah Tidak Ada.
Jika tidak ada nilai lain yang dilewatkan, nilai default digunakan.
Dalam SQL disebut di sisi server, sehingga Anda dapat lulus fungsi IE SQL seperti sekarang () atau kueri / nilai dibungkus dalam teks sqlalchemy () klausa.
Jika bidang memiliki nilai default server\ _, itu menjadi opsional.
Anda dapat melewati nilai statis atau panggilan (fungsi, dll.)
Ini hanya digunakan dalam SQL.
Contoh penggunaan:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Server peringatan!!! \ _ default menerima str,sqlalchemy.sql.elements.ClauseElement, atau sqlalchemy.sql.elements.TextClause, jadi jika Anda ingin mengatur nilai integer ie, Anda perlu membungkusnya dalam fungsi sqlalchemy.text (), seperti yang ditunjukkan di atas
!!!Tip Anda juga dapat melewati SQL yang valid (spesifik dialek) yang terkandung dalam sqlalchemy.text ()
1 | |
!!!info server\ _ default diteruskan langsung ke definisi tabel sqlalchemy, sehingga Anda dapat membaca lebih lanjut di dokumentasi sqlalchemy default server
nama
Nama: str = Tidak ada - > Tidak Ada Default
Memungkinkan Anda menentukan nama kolom alias yang akan digunakan.
Ini berguna untuk struktur database yang ada yang menggunakan kata kunci yang dicadangkan, atau jika Anda ingin menggunakan nama database yang berbeda dari nama bidang ormar.
Ambil cuplikan kode berikut sebagai contoh.
Dari, sebagai kata yang dicadangkan dalam Python, akan mencegah Anda membuat model dengan nama kolom tersebut.
Mengubah nama model menjadi dari\ _ dan menambahkan nama parameter = 'dari' akan menyebabkan ormar digunakan dari sebagai nama kolom database.
1 2 | |
Demikian juga, Anda dapat mengubah nama kolom kunci asing di database sambil mempertahankan nama relasional yang diinginkan di ormar:
1 2 | |
indeks
Indeks: bool = Salah - > Default itu Salah,
Mengatur indeks kolom tabel.
Ini hanya digunakan dalam SQL.
unik
Unik: bool = Salah
Menetapkan batasan unik pada kolom meja.
Ini hanya digunakan dalam SQL.
Tipe overlay\ _ pydantic
Secara default, Ormar menggunakan tipe bidang Pydantic yang telah ditentukan, yang diterapkan pada pembuatan model (jadi petunjuk jenisnya adalah opsional).
Jika mau, Anda dapat menerapkan tipe Anda sendiri, yang akan sepenuhnya menggantikan tipe bawaan. Oleh karena itu, sebagai pengguna, Anda bertanggung jawab untuk menyediakan tipe yang valid dalam konteks tipe medan ormar tertentu.
Peringatan: Secara default, Anda harus menggunakan parameter built-in yang diteruskan ke bidang Pydantic yang mendasarinya.
1 | |
!!!Berbahaya, mengatur jenis bidang pydantic yang salah dapat merusak model Anda, jadi hanya menimpanya jika Anda tahu apa yang Anda lakukan.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |