Bird
Raised Fist0
FastAPIframework~10 mins

String validation (min, max, regex) 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 set a minimum length of 3 for the username field.

FastAPI
from pydantic import BaseModel, Field

class User(BaseModel):
    username: str = Field(..., min_length=[1])
Drag options to blanks, or click blank then click option'
A3
B5
C1
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using 0 or 1 which allows too short usernames.
Confusing min_length with max_length.
2fill in blank
medium

Complete the code to set a maximum length of 10 for the password field.

FastAPI
from pydantic import BaseModel, Field

class User(BaseModel):
    password: str = Field(..., max_length=[1])
Drag options to blanks, or click blank then click option'
A8
B5
C12
D10
Attempts:
3 left
💡 Hint
Common Mistakes
Setting max_length too low, making passwords too short.
Mixing up max_length with min_length.
3fill in blank
hard

Fix the error in the regex pattern to only allow lowercase letters for the nickname field.

FastAPI
from pydantic import BaseModel, Field

class User(BaseModel):
    nickname: str = Field(..., pattern=r"[1]")
Drag options to blanks, or click blank then click option'
A^[a-z]+$
B^[A-Z]+$
C^[a-zA-Z]+$
D^[0-9]+$
Attempts:
3 left
💡 Hint
Common Mistakes
Using uppercase letters in the pattern.
Forgetting to anchor the pattern with ^ and $.
4fill in blank
hard

Fill both blanks to create a field that requires a string with minimum length 5 and matches only digits.

FastAPI
from pydantic import BaseModel, Field

class User(BaseModel):
    code: str = Field(..., min_length=[1], pattern=r"[2]")
Drag options to blanks, or click blank then click option'
A5
B^[0-9]+$
C^[a-z]+$
D3
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong regex that allows letters.
Setting min_length too low.
5fill in blank
hard

Fill all three blanks to create a field that requires an uppercase string between 2 and 6 characters.

FastAPI
from pydantic import BaseModel, Field

class User(BaseModel):
    tag: str = Field(..., min_length=[1], max_length=[2], pattern=r"[3]")
Drag options to blanks, or click blank then click option'
A2
B6
C^[A-Z]+$
D^[a-z]+$
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up min_length and max_length values.
Using lowercase regex instead of uppercase.

Practice

(1/5)
1. What does the constr function in FastAPI's Pydantic models help you do?
easy
A. Validate string fields with rules like minimum length, maximum length, and regex patterns
B. Create integer fields with range validation
C. Automatically generate API documentation
D. Handle database connections

Solution

  1. Step 1: Understand constr purpose

    constr is a Pydantic type used to validate string fields with constraints like length and regex.
  2. Step 2: Compare options

    Only Validate string fields with rules like minimum length, maximum length, and regex patterns correctly describes constr usage for string validation.
  3. Final Answer:

    Validate string fields with rules like minimum length, maximum length, and regex patterns -> Option A
  4. Quick Check:

    constr = string validation [OK]
Hint: Remember constr is for string validation rules [OK]
Common Mistakes:
  • Confusing constr with integer validation
  • Thinking constr manages database or docs
  • Assuming constr auto-generates API docs
2. Which of the following is the correct way to define a string field in a Pydantic model with minimum length 3 and maximum length 10?
easy
A. name: str(min_length=3, max_length=10)
B. name: constr(min=3, max=10)
C. name: constr(min_length=3, max_length=10)
D. name: str(min=3, max=10)

Solution

  1. Step 1: Recall correct syntax for constr

    The correct parameters are min_length and max_length inside constr().
  2. Step 2: Check options

    Only name: constr(min_length=3, max_length=10) uses constr(min_length=3, max_length=10) correctly. Options A, B, and D use wrong parameter names or types.
  3. Final Answer:

    name: constr(min_length=3, max_length=10) -> Option C
  4. Quick Check:

    Use min_length and max_length in constr [OK]
Hint: Use min_length and max_length, not min or max [OK]
Common Mistakes:
  • Using min and max instead of min_length and max_length
  • Trying to add length constraints directly to str type
  • Mixing parameter names
3. Given this Pydantic model snippet:
from pydantic import BaseModel, constr

class User(BaseModel):
    username: constr(min_length=4, max_length=8, regex=r'^[a-zA-Z]+$')

What happens if you try to create User(username='abc123')?
medium
A. Validation error because username is too long
B. User instance created successfully
C. Validation error because username is too short
D. Validation error because username contains digits

Solution

  1. Step 1: Analyze regex pattern

    The regex r'^[a-zA-Z]+$' allows only letters, no digits.
  2. Step 2: Check input username

    Input 'abc123' contains digits '123', violating the regex.
  3. Final Answer:

    Validation error because username contains digits -> Option D
  4. Quick Check:

    Regex restricts digits, so error occurs [OK]
Hint: Regex restricts characters; digits cause validation error [OK]
Common Mistakes:
  • Ignoring regex and only checking length
  • Assuming digits are allowed by regex
  • Confusing length errors with pattern errors
4. Identify the error in this FastAPI Pydantic model field:
from pydantic import BaseModel, constr

class Item(BaseModel):
    code: constr(min_length=5, max=10)
medium
A. code field must be an int, not constr
B. max should be max_length to specify maximum string length
C. constr cannot be used for string validation
D. min_length should be min to specify minimum length

Solution

  1. Step 1: Check parameter names in constr

    The correct parameter for maximum length is max_length, not max.
  2. Step 2: Identify error in code

    Using max=10 causes a syntax or validation error because it's invalid.
  3. Final Answer:

    max should be max_length to specify maximum string length -> Option B
  4. Quick Check:

    Use max_length, not max, in constr [OK]
Hint: Use max_length, not max, for string max length [OK]
Common Mistakes:
  • Using max instead of max_length
  • Confusing min_length with min
  • Thinking constr is for int fields
5. You want to create a FastAPI model field password that must be between 8 and 16 characters and include at least one digit. Which is the correct way to define it?
hard
A. password: constr(min_length=8, max_length=16, regex=r'^(?=.*\\d).+$')
B. password: constr(min_length=8, max_length=16, regex=r'^[a-zA-Z]+$')
C. password: constr(min=8, max=16, regex=r'^(?=.*\\d).+$')
D. password: str(min_length=8, max_length=16, regex=r'^(?=.*\\d).+$')

Solution

  1. Step 1: Check length parameters

    Use min_length=8 and max_length=16 in constr for length limits.
  2. Step 2: Verify regex for digit inclusion

    The regex r'^(?=.*\\d).+$' ensures at least one digit is present.
  3. Step 3: Validate option correctness

    password: constr(min_length=8, max_length=16, regex=r'^(?=.*\\d).+$') correctly combines length and regex. password: constr(min_length=8, max_length=16, regex=r'^[a-zA-Z]+$')'s regex disallows digits. password: constr(min=8, max=16, regex=r'^(?=.*\\d).+$') uses invalid min and max. password: str(min_length=8, max_length=16, regex=r'^(?=.*\\d).+$') wrongly applies regex to str type.
  4. Final Answer:

    password: constr(min_length=8, max_length=16, regex=r'^(?=.*\\d).+$') -> Option A
  5. Quick Check:

    Use constr with min_length, max_length, and digit regex [OK]
Hint: Use constr with min_length, max_length, and digit regex [OK]
Common Mistakes:
  • Using min and max instead of min_length and max_length
  • Using regex that excludes digits
  • Trying to add regex to plain str type
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