Challenge - 5 Problems
Django Database Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate1:30remaining
What is the default database engine in Django's settings?
In a new Django project, what database engine is used by default in the
DATABASES setting?Django
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}Attempts:
2 left
💡 Hint
Think about the simplest database that requires no extra setup.
✗ Incorrect
Django uses SQLite as the default database engine because it is lightweight and requires no additional installation.
📝 Syntax
intermediate2:00remaining
Identify the syntax error in this Django database configuration
Which option contains a syntax error in the
DATABASES setting for PostgreSQL?Django
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydb',
'USER': 'user',
'PASSWORD': 'pass',
'HOST': 'localhost',
'PORT': '5432'
}
}Attempts:
2 left
💡 Hint
Look for missing punctuation between keys.
✗ Incorrect
Option B is missing a comma between 'HOST' and 'PORT' keys, causing a syntax error.
❓ state_output
advanced1:30remaining
What will be the database NAME after this settings update?
Given this initial
DATABASES setting, what is the value of DATABASES['default']['NAME'] after the update code runs?Django
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'db.sqlite3',
}
}
# Update to PostgreSQL
DATABASES['default']['ENGINE'] = 'django.db.backends.postgresql'
DATABASES['default']['NAME'] = 'prod_db'
DATABASES['default']['USER'] = 'admin'Attempts:
2 left
💡 Hint
The update changes the NAME key after initial assignment.
✗ Incorrect
The code assigns 'prod_db' to DATABASES['default']['NAME'], so that is the final value.
🔧 Debug
advanced2:00remaining
Why does this Django project fail to connect to the database?
This Django
DATABASES setting causes a connection failure. What is the most likely cause?Django
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb',
'USER': 'root',
'PASSWORD': 'password',
'HOST': '',
'PORT': '',
}
}Attempts:
2 left
💡 Hint
Check if the database driver is installed and compatible.
✗ Incorrect
Django requires a MySQL driver like mysqlclient or PyMySQL installed to connect using 'django.db.backends.mysql'. Without it, connection fails.
🧠 Conceptual
expert2:30remaining
How does Django handle multiple databases in settings?
If you configure multiple databases in Django's
DATABASES setting, how does Django decide which database to use for a model by default?Attempts:
2 left
💡 Hint
Think about the meaning of the 'default' key in the DATABASES setting.
✗ Incorrect
Django uses the 'default' database for all operations unless a database router is implemented to direct queries elsewhere.