lapangan
Ada 12 tipe bidang model dasar serta bidang ForeignKey dan ManyToMany khusus untuk menjalin hubungan antar model.
!!!Tip Deskripsi dari ForeignKey dan ManyToMany hubungan pemeriksaan lapangan.
Setiap bidang diberi kelas kolom SQLALCHEMY dan tipe Python yang digunakan untuk membuat model Pydantic.
tipe lapangan
senar
String(max_length: int, min_length: int = None, regex: str = None,) Ada parameter max\ _ length yang dibutuhkan.
- Kolom Sqlalchemy: sqlalchemy. String
- Jenis (untuk pydantic): str
!!!Tip Untuk petunjuk tentang parameter lain, silakan lihat dokumentasi Pydantic.
Teks
Teks () tidak memiliki parameter yang diperlukan.
- Kolom Sqlalchemy: sqlalchemy. Teks
- Jenis (untuk pydantic): str
!!!Tip Untuk petunjuk tentang parameter lain, silakan lihat dokumentasi Pydantic.
Boolean
Boolean () tidak memiliki parameter yang diperlukan.
- Kolom Sqlalchemy: sqlalchemy. Boolean
- Jenis (untuk pydantic): bool
bilangan bulat
Integer(minimum: int = None, maximum: int = None, multiple_of: int = None) Tidak ada parameter yang diperlukan.
- Kolom Sqlalchemy: sqlalchemy. Integer
- Jenis (untuk pydantic): int
!!!Tip Untuk petunjuk tentang parameter lain, silakan lihat dokumentasi Pydantic.
bilangan bulat besar
BigInteger(minimum: int = None, maximum: int = None, multiple_of: int = None) Tidak ada parameter yang diperlukan.
- Kolom Sqlalchemy: sqlalchemy. Integer Besar
- Jenis (untuk pydantic): int
!!!Tip Untuk petunjuk tentang parameter lain, silakan lihat dokumentasi Pydantic.
bilangan bulat kecil
SmallInteger(minimum: int = None, maximum: int = None, multiple_of: int = None) Tidak ada parameter yang diperlukan.
- Kolom Sqlalchemy: sqlalchemy. SmallInteger
- Jenis (untuk pydantic): int
!!!Tip Untuk petunjuk tentang parameter lain, silakan lihat dokumentasi Pydantic.
mengapung
Float(minimum: float = None, maximum: float = None, multiple_of: int = None) Tidak ada parameter yang diperlukan.
- Kolom Sqlalchemy: sqlalchemy. Mengambang
- Jenis (untuk pydantic): mengapung
!!!Tip Untuk petunjuk tentang parameter lain, silakan lihat dokumentasi Pydantic.
desimal
Decimal(minimum: float = None, maximum: float = None, multiple_of: int = None, precision: int = None, scale: int = None, max_digits: int = None, decimal_places: int = None) Tidak diperlukan parameter
Anda dapat menggunakan parameter panjang dan presisi atau max\ _ digit dan desimal\ _ tempat.
- Kolom Sqlalchemy: sqlalchemy. DECIMAL
- Jenis (untuk pydantic): desimal. Desimal
!!!Tip Untuk petunjuk tentang parameter lain, silakan lihat dokumentasi Pydantic.
tanggal
Tanggal () tidak memiliki parameter yang diperlukan.
- Kolom Sqlalchemy: sqlalchemy.Date
- Tipe (untuk pydantic): datetime.date
waktu
Waktu (zona waktu: bool = Salah) Tidak diperlukan parameter.
Anda dapat melewati zona waktu = Benar untuk kolom basis data yang sadar zona waktu.
- Kolom Sqlalchemy: sqlalchemy. Waktu
- Jenis (untuk pydantic): datetime.time
Waktu Tanggal
DateTime(timezone: bool = False) Tidak ada parameter yang diperlukan.
Anda dapat melewati zona waktu = Benar untuk kolom basis data yang sadar zona waktu.
- Kolom Sqlalchemy: sqlalchemy. Tanggal Waktu
- Jenis (untuk pydantic): datetime.datetime
JSON
JSON () tidak memiliki parameter yang diperlukan.
- Kolom Sqlalchemy: sqlalchemy. JSON
- Tipe (untuk pydantic): pydantic. Json
File biner besar
LargeBinary (max\ _ length) memiliki parameter max\ _ length yang dibutuhkan.
- Kolom Sqlalkimia: sqlalchemy. LargeBinary
- Jenis (untuk pydantic): Bytes
LargePanjang biner digunakan dalam beberapa backends (yaitu MySQL) untuk menentukan ukuran bidang, di bidang lain diabaikan begitu saja, tetapi dalam ormar selalu diperlukan. Itu harus menjadi ukuran maksimum (dalam byte) dari file / byte.
LargeBinary juga memiliki bendera represent_as_base64_str: bool = False opsional. Saat disetel ke Trueormar, nilai byte secara otomatis diubah menjadi string yang diterjemahkan Base64, dan Anda juga dapat mengatur nilai dengan melewati string yang dikodekan Base64.
Dengan cara ini, Anda dapat mengatur nilai melalui API, bahkan jika nilainya tidak kompatibel dengan UTF-8, jika tidak maka akan gagal selama konversi JSON.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
Pengidentifikasi perangkat unik universal
UUID(uuid_format: str = 'hex') Tidak ada parameter yang diperlukan.
Kolom Sqlalkimia* : ormar. UUID berdasarkan sqlalchemy. CHAR (36) atau sqlalchemy. CHAR (32) bidang (untuk format string atau heksadesimal masing-masing) * Tipe (untuk pydantic): uuid. UUID
Parameter format uuid\ _ memungkinkan nilai "heksadesimal" (default) atau "string."
Tergantung pada formatnya, 32 atau 36 karakter digunakan dalam database.
Contoh:
Nilai format "heksadesimal" =c616ab438cce49dbbf4380d109251dce(karakter (32))
Nilai "string" =c616ab43-8cce-49db-bf43-80d109251dce(karakter (36))
Itu selalu UUID Python saat dimuat, sehingga Anda dapat membandingkannya dan membandingkan nilai antara kedua format.
pencacahan
Ada dua cara untuk menggunakan enumerasi di ormar - >, satu adalah dengan menggunakan bidang enumerasi khusus dari sqlalchemy. Jenis kolom Enum, dan yang lainnya adalah mengatur seleksi di bidang apa pun di ormar.
Bidang Enum menggunakan tipe kolom Enum spesifik dialek database (jika tersedia), tetapi kembali ke varchar jika jenis bidang ini tidak tersedia.
Opsi pemilihan selalu mengikuti jenis bidang database yang dipilih.
Oleh karena itu, mana yang akan digunakan tergantung pada backend yang Anda gunakan dan tipe kolom / data yang ingin Anda gunakan di bidang pencacahan.
Pencacahan - Ladang
Enum (enum\ _ class = Type\ [Enum]) memiliki argumen kelas enum\ _ yang dibutuhkan.
- Kolom Sqlalchemy: sqlalchemy. Enum
- Tipe (untuk pydantic): Tipe\ [Enum]