Bird
Raised Fist0
Djangoframework~20 mins

Django project structure walkthrough - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Django Structure Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the role of the manage.py file in a Django project?
In a typical Django project, what does the manage.py file do when you run commands like python manage.py runserver?
AIt acts as a command-line utility that lets you interact with the Django project, like running the server or migrations.
BIt contains the main settings and configuration for the Django project.
CIt stores the database models and schema definitions.
DIt is the template file that defines the HTML layout for the project.
Attempts:
2 left
💡 Hint
Think about what you type in the terminal to start the server or make database changes.
❓ component_behavior
intermediate
2:00remaining
What is the purpose of the settings.py file inside a Django project?
Inside the main Django project folder, there is a settings.py file. What is its main role?
AIt holds the HTML templates for rendering pages.
BIt contains the URL patterns that map URLs to views.
CIt defines the configuration for the Django project, like database setup, installed apps, and middleware.
DIt manages static files like CSS and JavaScript.
Attempts:
2 left
💡 Hint
Think about where you set your database or add apps in Django.
📝 Syntax
advanced
2:00remaining
What error occurs if urls.py is missing in a Django app?
If you create a new Django app but forget to add a urls.py file and try to include its URLs in the main project, what error will Django raise?
ATypeError: 'NoneType' object is not callable
BTemplateDoesNotExist error
COperationalError related to the database
DModuleNotFoundError: No module named 'app_name.urls'
Attempts:
2 left
💡 Hint
Think about what happens when Django tries to import a missing file.
❓ state_output
advanced
2:00remaining
What is the output of running python manage.py startapp blog?
When you run python manage.py startapp blog in your Django project, what folder structure is created inside the blog app folder?
AOnly a single file named blog.py is created.
BFolders and files: migrations/, admin.py, apps.py, models.py, tests.py, views.py, __init__.py
CA templates/ folder with HTML files is created.
DA static/ folder with CSS and JS files is created.
Attempts:
2 left
💡 Hint
Think about the default files Django creates for a new app.
🧠 Conceptual
expert
2:00remaining
Which folder in a Django project holds the HTML files for rendering views?
In a Django project, where should you place your HTML template files so that Django can find and render them properly?
AInside a <code>templates/</code> folder either at the project level or inside each app folder.
BInside the <code>static/</code> folder alongside CSS and JavaScript files.
CInside the <code>migrations/</code> folder of each app.
DDirectly inside the main project folder with <code>settings.py</code>.
Attempts:
2 left
💡 Hint
Templates are not static files but files used to generate HTML dynamically.

Practice

(1/5)
1. Which file in a Django project is used to run commands like starting the server or creating migrations?
easy
A. manage.py
B. settings.py
C. urls.py
D. wsgi.py

Solution

  1. Step 1: Identify the command runner file

    The manage.py file is designed to run commands like starting the server or making migrations.
  2. Step 2: Understand other files' roles

    settings.py holds configuration, urls.py routes URLs, and wsgi.py is for deployment interface.
  3. Final Answer:

    manage.py -> Option A
  4. Quick Check:

    Command runner = manage.py [OK]
Hint: Remember: manage.py runs commands for your project [OK]
Common Mistakes:
  • Confusing settings.py as command runner
  • Thinking urls.py runs commands
  • Assuming wsgi.py runs server commands
2. Which folder typically contains the settings and URL configuration files in a Django project?
easy
A. The app folder
B. The templates folder
C. The project folder
D. The static folder

Solution

  1. Step 1: Identify where settings.py and urls.py live

    These files are inside the main project folder, which shares the project name.
  2. Step 2: Differentiate folders

    App folders contain app-specific code, templates hold HTML files, static holds CSS/JS/images.
  3. Final Answer:

    The project folder -> Option C
  4. Quick Check:

    Settings and URLs = project folder [OK]
Hint: Settings and URLs live in the project folder, not apps [OK]
Common Mistakes:
  • Thinking settings.py is inside an app folder
  • Confusing templates folder with project folder
  • Assuming static folder holds config files
3. Given this Django project structure snippet:
myproject/
  manage.py
  myproject/
    settings.py
    urls.py
  blog/
    models.py
    views.py
    urls.py

Which file would you edit to add a new URL route for the blog app?
medium
A. myproject/settings.py
B. blog/urls.py
C. myproject/urls.py
D. manage.py

Solution

  1. Step 1: Understand URL routing in Django

    The main project urls.py includes app URLs, but app-specific routes go in the app's urls.py.
  2. Step 2: Locate where to add blog routes

    To add blog-specific URLs, edit blog/urls.py where blog views are connected to paths.
  3. Final Answer:

    blog/urls.py -> Option B
  4. Quick Check:

    App URLs go in app's urls.py [OK]
Hint: Add app URLs inside the app's own urls.py file [OK]
Common Mistakes:
  • Adding app URLs directly in project urls.py
  • Editing settings.py for URL routes
  • Trying to add routes in manage.py
4. You try to run your Django project but get an error: ModuleNotFoundError: No module named 'blog'. Which of these is the most likely cause?
medium
A. You forgot to import models.py in views.py
B. You did not create a urls.py file in the blog app
C. You ran manage.py from the wrong folder
D. You forgot to add the blog app to INSTALLED_APPS in settings.py

Solution

  1. Step 1: Understand the error meaning

    The error means Python cannot find the blog app module when loading the project.
  2. Step 2: Check common causes

    Not adding the app name to INSTALLED_APPS in settings.py causes this error because Django doesn't recognize the app.
  3. Final Answer:

    Forgot to add blog to INSTALLED_APPS -> Option D
  4. Quick Check:

    Missing app in INSTALLED_APPS = ModuleNotFoundError [OK]
Hint: Always add new apps to INSTALLED_APPS in settings.py [OK]
Common Mistakes:
  • Assuming missing urls.py causes ModuleNotFoundError
  • Running manage.py from wrong folder usually gives different error
  • Forgetting imports in views.py causes different errors
5. You want to create a new Django app called shop inside your project. Which sequence of actions correctly follows Django project structure best practices?
hard
A. Run python manage.py startapp shop, then add shop to INSTALLED_APPS in settings.py
B. Create a folder named shop manually, then add shop to urls.py
C. Add shop to INSTALLED_APPS first, then run python manage.py startapp shop
D. Run python manage.py startproject shop inside your project folder

Solution

  1. Step 1: Create the app properly

    Use python manage.py startapp shop to create the app folder with correct files.
  2. Step 2: Register the app in settings

    Add shop to INSTALLED_APPS in settings.py so Django knows about it.
  3. Final Answer:

    Run startapp then add to INSTALLED_APPS -> Option A
  4. Quick Check:

    Start app then register in settings [OK]
Hint: Always start app with manage.py then add to INSTALLED_APPS [OK]
Common Mistakes:
  • Manually creating app folder misses essential files
  • Adding app to INSTALLED_APPS before creating it
  • Using startproject instead of startapp for apps
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