Bird
Raised Fist0
Flaskframework~10 mins

Flask project structure conventions - Interactive Code Practice

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

Complete the code to import Flask and create an app instance.

Flask
from flask import [1]
app = [1](__name__)
Drag options to blanks, or click blank then click option'
AFlask
BApp
CFlaskApp
Dflask
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase 'flask' instead of 'Flask'.
Trying to create app with a wrong class name.
2fill in blank
medium

Complete the code to define a route for the home page.

Flask
@app.[1]('/')
def home():
    return 'Hello, Flask!'
Drag options to blanks, or click blank then click option'
Apath
Burl
Croute
Dendpoint
Attempts:
3 left
💡 Hint
Common Mistakes
Using '@app.url' or '@app.path' which do not exist.
Missing the decorator entirely.
3fill in blank
hard

Fix the error in the app run command to enable debug mode.

Flask
if __name__ == '__main__':
    app.run(debug=[1])
Drag options to blanks, or click blank then click option'
A'True'
B1
Ctrue
DTrue
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'True' as a string instead of the boolean True.
Using lowercase 'true' which is not valid in Python.
4fill in blank
hard

Fill both blanks to create a dictionary comprehension mapping endpoints to their view function names.

Flask
routes = {endpoint: func[1] for endpoint, func in app.[2].items()}
Drag options to blanks, or click blank then click option'
A.__name__
Bview_functions
C.__doc__
D.__str__
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect attributes that do not exist on app.
Trying to call methods instead of accessing attributes.
5fill in blank
hard

Fill all three blanks to create a Flask blueprint and register it.

Flask
from flask import Blueprint

bp = Blueprint('[1]', __name__, url_prefix='[2]')

app.[3](bp)
Drag options to blanks, or click blank then click option'
Aauth
B/auth
Cregister_blueprint
Droute
Attempts:
3 left
💡 Hint
Common Mistakes
Using '@app.route' instead of 'register_blueprint'.
Missing the slash in the URL prefix.
Using the wrong blueprint name.

Practice

(1/5)
1. Which folder is conventionally used to store HTML files in a Flask project?
easy
A. templates
B. static
C. app
D. config

Solution

  1. Step 1: Understand Flask folder roles

    Flask uses a folder named templates to hold HTML files for rendering views.
  2. Step 2: Identify correct folder for HTML

    Since HTML files are templates, they belong in the templates folder, not static or others.
  3. Final Answer:

    templates -> Option A
  4. Quick Check:

    HTML files go in templates [OK]
Hint: HTML files live in templates folder by Flask convention [OK]
Common Mistakes:
  • Confusing static folder for HTML files
  • Putting HTML files directly in app folder
  • Using config folder for templates
2. Which file is used to initialize a Flask app package inside the app folder?
easy
A. run.py
B. config.py
C. __init__.py
D. app.py

Solution

  1. Step 1: Recognize Python package initialization

    Python packages use __init__.py to initialize modules and setup code.
  2. Step 2: Apply to Flask app folder

    In Flask, the app folder is a package, so __init__.py initializes the Flask app instance.
  3. Final Answer:

    __init__.py -> Option C
  4. Quick Check:

    __init__.py initializes app package [OK]
Hint: Use __init__.py to initialize app package in Flask [OK]
Common Mistakes:
  • Using run.py to initialize app package
  • Confusing config.py with initialization
  • Naming app.py as initializer
3. Given this Flask project structure:
myproject/
 ├── app/
 │    ├── __init__.py
 │    ├── routes.py
 │    ├── templates/
 │    │    └── home.html
 │    └── static/
 │         └── style.css
 ├── config.py
 └── run.py

Which file is typically used to start the Flask application?
medium
A. config.py
B. app/__init__.py
C. app/routes.py
D. run.py

Solution

  1. Step 1: Identify the purpose of run.py

    In Flask projects, run.py is commonly used as the entry point to start the app server.
  2. Step 2: Differentiate from other files

    config.py holds settings, __init__.py initializes app, and routes.py defines routes, but none start the server directly.
  3. Final Answer:

    run.py -> Option D
  4. Quick Check:

    run.py starts Flask app [OK]
Hint: run.py usually starts the Flask app server [OK]
Common Mistakes:
  • Trying to run config.py to start app
  • Running __init__.py directly
  • Running routes.py as main file
4. You have this run.py file:
from app import app

if __name__ == '__main__':
    app.run(debug=true)

But running python run.py gives an ImportError: cannot import name 'app'. What is the likely cause?
medium
A. run.py is missing the Flask import statement
B. The 'app' variable is not defined in app/__init__.py
C. The templates folder is missing
D. Debug mode cannot be set in run.py

Solution

  1. Step 1: Understand the import error

    The error means app is not found inside the app package's __init__.py.
  2. Step 2: Check app/__init__.py for app variable

    Usually, app = Flask(__name__) is defined in __init__.py. If missing, import fails.
  3. Final Answer:

    The 'app' variable is not defined in app/__init__.py -> Option B
  4. Quick Check:

    app must be defined in __init__.py [OK]
Hint: Ensure app variable is defined in __init__.py before importing [OK]
Common Mistakes:
  • Assuming missing Flask import causes this error
  • Thinking templates folder affects imports
  • Believing debug mode setting causes import error
5. You want to organize a Flask project with multiple blueprints for different features. Which structure best supports this while following Flask conventions?
hard
A.
myproject/
 ├── app/
 │    ├── __init__.py
 │    ├── auth/
 │    │    ├── __init__.py
 │    │    └── routes.py
 │    ├── blog/
 │    │    ├── __init__.py
 │    │    └── routes.py
 │    ├── templates/
 │    └── static/
 ├── config.py
 └── run.py
B.
myproject/
 ├── auth/
 │    ├── __init__.py
 │    └── routes.py
 ├── blog/
 │    ├── __init__.py
 │    └── routes.py
 ├── templates/
 ├── static/
 ├── config.py
 └── run.py
C.
myproject/
 ├── app.py
 ├── auth_routes.py
 ├── blog_routes.py
 ├── templates/
 ├── static/
 ├── config.py
 └── run.py
D.
myproject/
 ├── app/
 │    ├── routes.py
 │    ├── templates/
 │    └── static/
 ├── auth.py
 ├── blog.py
 ├── config.py
 └── run.py

Solution

  1. Step 1: Understand blueprint organization

    Blueprints are best organized as sub-packages inside the main app package, each with its own __init__.py and routes.
  2. Step 2: Evaluate options for Flask conventions

    myproject/
     ├── app/
     │    ├── __init__.py
     │    ├── auth/
     │    │    ├── __init__.py
     │    │    └── routes.py
     │    ├── blog/
     │    │    ├── __init__.py
     │    │    └── routes.py
     │    ├── templates/
     │    └── static/
     ├── config.py
     └── run.py
    places blueprints inside app/ folder as sub-packages, keeping templates and static centralized, which is recommended.
  3. Final Answer:

    Option A structure best supports multiple blueprints with Flask conventions -> Option A
  4. Quick Check:

    Blueprints as sub-packages inside app folder [OK]
Hint: Put blueprints as subfolders inside app with __init__.py [OK]
Common Mistakes:
  • Placing blueprints outside app folder
  • Using single file for all routes
  • Not including __init__.py in blueprint folders
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