Bird
Raised Fist0
FastAPIframework~10 mins

Pydantic model basics in FastAPI - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define a Pydantic model with a name field.

FastAPI
from pydantic import BaseModel

class User([1]):
    name: str
Drag options to blanks, or click blank then click option'
AModelBase
BBaseModel
CModel
DBase
Attempts:
3 left
💡 Hint
Common Mistakes
Using a wrong base class name like Model or Base.
Forgetting to inherit from any class.
2fill in blank
medium

Complete the code to create a Pydantic model with an age field of type integer.

FastAPI
from pydantic import BaseModel

class Person(BaseModel):
    age: [1]
Drag options to blanks, or click blank then click option'
Astr
Bbool
Cfloat
Dint
Attempts:
3 left
💡 Hint
Common Mistakes
Using str for age which should be a number.
Using float which allows decimals.
3fill in blank
hard

Fix the error in the Pydantic model by completing the missing base class.

FastAPI
from pydantic import BaseModel

class Product([1]):
    id: int
    price: float
Drag options to blanks, or click blank then click option'
AModelBase
BModel
CBaseModel
DProductBase
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect base classes that cause runtime errors.
Forgetting to inherit from any class.
4fill in blank
hard

Fill both blanks to create a Pydantic model with a required string field and an optional integer field.

FastAPI
from typing import [1]
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    quantity: [2][int] = None
Drag options to blanks, or click blank then click option'
AOptional
BList
CDict
DSet
Attempts:
3 left
💡 Hint
Common Mistakes
Using List or Dict which expect collections, not optional values.
Not importing Optional from typing.
5fill in blank
hard

Fill all three blanks to define a Pydantic model with a string field, a float field with a default, and a boolean field.

FastAPI
from pydantic import BaseModel

class Config(BaseModel):
    env: [1]
    version: [2] = 1.0
    debug: [3] = False
Drag options to blanks, or click blank then click option'
Astr
Bfloat
Cbool
Dint
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up types like using int for version which is a float.
Forgetting to assign default values for optional fields.

Practice

(1/5)
1. What is the main purpose of a Pydantic model in FastAPI?
easy
A. To validate and organize data automatically
B. To create HTML templates
C. To manage database connections
D. To handle user authentication

Solution

  1. Step 1: Understand Pydantic model role

    Pydantic models are designed to check and organize data by validating types and structure. This matches "To validate and organize data automatically".
  2. Final Answer:

    To validate and organize data automatically -> Option A
  3. Quick Check:

    Pydantic = Data validation and organization [OK]
Hint: Pydantic models are for data validation, not UI or DB [OK]
Common Mistakes:
  • Confusing Pydantic with template engines
  • Thinking Pydantic manages databases
  • Assuming Pydantic handles authentication
2. Which of the following is the correct way to define a simple Pydantic model with a required string field name?
easy
A. class User: name = str
B. def User(): name: str
C. class User(BaseModel): name: str
D. class User(BaseModel): name = 'str'

Solution

  1. Step 1: Recall Pydantic model syntax

    A Pydantic model must inherit from BaseModel and define fields with type annotations like class User(BaseModel): name: str. Other options miss inheritance or use assignment instead of type annotation.
  2. Final Answer:

    class User(BaseModel):\n name: str -> Option C
  3. Quick Check:

    BaseModel + type annotation = correct model [OK]
Hint: Use BaseModel and type annotations for fields [OK]
Common Mistakes:
  • Not inheriting from BaseModel
  • Using assignment instead of type annotation
  • Defining model as a function
3. Given this Pydantic model and code:
from pydantic import BaseModel

class Item(BaseModel):
    id: int
    name: str

item = Item(id='10', name='Book')
print(item.id, type(item.id))

What will be the output?
medium
A. 10
B. '10'
C. Error: id must be int
D. 10

Solution

  1. Step 1: Understand Pydantic type coercion

    Pydantic automatically converts compatible types like string '10' to int 10, so print(item.id, type(item.id)) outputs 10 <class 'int'>.
  2. Final Answer:

    10 <class 'int'> -> Option D
  3. Quick Check:

    Pydantic converts compatible types automatically [OK]
Hint: Pydantic converts strings to int if possible [OK]
Common Mistakes:
  • Expecting a type error for string input
  • Assuming no conversion happens
  • Confusing output type with input type
4. What is wrong with this Pydantic model definition?
from pydantic import BaseModel

class Product(BaseModel):
    price: float = 'free'
medium
A. Class name should be lowercase
B. Default value 'free' is a string, but price expects a float
C. Missing import for BaseModel
D. Field price must be an integer

Solution

  1. Step 1: Check field type and default value

    price: float = 'free' is invalid because the string 'free' cannot be converted to float, causing a validation error.
  2. Final Answer:

    Default value 'free' is a string, but price expects a float -> Option B
  3. Quick Check:

    Field type and default must match [OK]
Hint: Default values must match field types exactly [OK]
Common Mistakes:
  • Using wrong default value types
  • Ignoring type mismatch errors
  • Thinking class names must be lowercase
5. You want to create a Pydantic model User with an optional age field that defaults to 18 if not provided. Which is the correct way?
hard
A. class User(BaseModel): age: int = 18
B. class User(BaseModel): age: Optional[int]
C. class User(BaseModel): age: int = None
D. class User(BaseModel): age: int

Solution

  1. Step 1: Understand optional field with default

    To make age optional with default 18, use age: int = 18. age: Optional[int] lacks default (required but allows None), age: int = None is invalid (None not int), age: int requires a value.
  2. Final Answer:

    class User(BaseModel):\n age: int = 18 -> Option A
  3. Quick Check:

    Default value makes field optional [OK]
Hint: Assign default value to make field optional [OK]
Common Mistakes:
  • Using Optional without default
  • Assigning None to non-optional int
  • Forgetting to assign default value
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard