Kem Intensif Pembangunan Bahagian Belakang FastAPI · Pelajaran

Penyirian dengan model_dump dan Alias

Kawal cara model Pydantic menukar data kepada dan daripadanya menggunakan model_dump, alias medan, medan terhitung dan pilihan penyirian untuk muatan API yang kemas.

Pelajaran 4 daripada 413 langkah

Penyirian dengan model_dump dan Alias ialah pelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif Pembangunan Bahagian Belakang FastAPI merangkumi sejumlah 4 pelajaran.

Penyusunan Bersiri berbanding Pengesahan

Pydantic melakukan dua tugas: pengesahan (input yang tidak dipercayai menjadi model bertaip) dan penyusunan bersiri (model menjadi kamus atau JSON untuk dihantar keluar). Pelajaran ini memfokuskan kawalan tepat terhadap bahagian output.

Asas model_dump

Dalam Pydantic v2, model_dump() menukar model menjadi kamus dan model_dump_json() menjadi rentetan JSON.

from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int

u = User(name='Ada', age=36)
print(u.model_dump())
print(u.model_dump_json())

Menyertakan dan Mengecualikan Medan

Ringkaskan output dengan include atau exclude untuk menyembunyikan medan dalaman atau sensitif daripada muatan data.

u.model_dump(exclude={'age'})
u.model_dump(include={'name'})

Menggugurkan Nilai Lalai dan None

Gunakan exclude_none=True atau exclude_defaults=True untuk menghasilkan muatan data yang lebih ringkas dengan menggugurkan nilai kosong.

class Profile(BaseModel):
    name: str
    bio: str | None = None

Profile(name='Ada').model_dump(exclude_none=True)

Alias Medan

API luaran sering menggunakan nama seperti userName, manakala Python lebih mengutamakan user_name. Alias memetakan kedua-duanya.

from pydantic import BaseModel, Field

class User(BaseModel):
    user_name: str = Field(alias='userName')

Menyusun Bersiri Mengikut Alias

Secara lalai, model_dump menggunakan nama medan Python. Hantarkan by_alias=True untuk mengeluarkan nama alias pula.

u = User(userName='ada')
print(u.model_dump())
print(u.model_dump(by_alias=True))

populate_by_name

Tetapkan model_config = ConfigDict(populate_by_name=True) untuk menerima sama ada nama medan atau alias semasa menghuraikan input, lalu memberikan fleksibiliti pada kedua-dua hujung.

from pydantic import ConfigDict

class User(BaseModel):
    model_config = ConfigDict(populate_by_name=True)
    user_name: str = Field(alias='userName')

Medan Terhitung

Dedahkan nilai terbitan dalam output dengan @computed_field. Nilai ini muncul dalam model_dump tetapi bukan sebahagian daripada input.

from pydantic import computed_field

class Person(BaseModel):
    first: str
    last: str
    @computed_field
    @property
    def full(self) -> str:
        return self.first + ' ' + self.last

Penyusun Bersiri Medan Tersuai

Gunakan @field_serializer untuk mengawal cara medan tertentu dipaparkan, contohnya memformat tarikh masa atau menyamarkan rahsia.

from pydantic import field_serializer

class Account(BaseModel):
    card: str
    @field_serializer('card')
    def mask(self, v: str) -> str:
        return '****' + v[-4:]

Pemetaan Alias dalam Python Biasa

Transformasi by_alias hanyalah penamaan semula kunci. Berikut ialah konsepnya tanpa Pydantic.

data = {'user_name': 'ada', 'user_age': 36}
alias = {'user_name': 'userName', 'user_age': 'userAge'}
out = {alias[k]: v for k, v in data.items()}
print(out)

Integrasi Respons FastAPI

FastAPI menyusun bersiri nilai yang dikembalikan melalui response_model anda. Tetapkan response_model_by_alias dan bendera pengecualian pada laluan untuk membentuk JSON yang dikeluarkan oleh API anda.

@app.get('/user', response_model=User, response_model_by_alias=True)
async def get_user():
    return User(user_name='ada')

Semakan Pantas

Model anda mempunyai user_name: str = Field(alias='userName'). Apakah yang dihasilkan oleh model_dump(by_alias=True) untuk kunci tersebut?

Rumusan

Anda telah menguasai penyusunan bersiri Pydantic:

  • model_dump / model_dump_json dengan include, exclude dan exclude_none.
  • Alias bersama by_alias dan populate_by_name.
  • Medan terhitung dan penyusun bersiri medan tersuai.
  • Menghubungkannya dengan model respons FastAPI.
Percuma untuk bermula

Pelajari Kem Intensif Pembangunan Bahagian Belakang FastAPI dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
21
Pelajaran
84

Soalan Lazim

Adakah pelajaran “Penyirian dengan model_dump dan Alias” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI, termasuk “Penyirian dengan model_dump dan Alias”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif Pembangunan Bahagian Belakang FastAPI merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Penyirian dengan model_dump dan Alias”?

Kawal cara model Pydantic menukar data kepada dan daripadanya menggunakan model_dump, alias medan, medan terhitung dan pilihan penyirian untuk muatan API yang kemas. Anda berlatih Kem Intensif Pembangunan Bahagian Belakang FastAPI menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif Pembangunan Bahagian Belakang FastAPI?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Penyirian dengan model_dump dan Alias” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI ini?

Ya. Setiap pelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pengesahan Medan dan Pengesah Pydantic
  2. Jenis Data Tersuai dan Tetapan
  3. Model Bersarang dan Struktur Rekursif
  4. Penyirian dengan model_dump dan Alias
← Kembali ke Kem Intensif Pembangunan Bahagian Belakang FastAPI