Bird
Raised Fist0
Flaskframework~5 mins

Flask project structure conventions - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the app.py file in a Flask project?
The app.py file is the main entry point of a Flask application. It creates the Flask app instance and defines routes and configurations.
Click to reveal answer
beginner
Why do Flask projects often have a templates folder?
The templates folder stores HTML files that Flask uses to render web pages dynamically using the Jinja2 template engine.
Click to reveal answer
beginner
What is the role of the static folder in a Flask project?
The static folder holds static files like CSS, JavaScript, and images that the browser can load directly without processing.
Click to reveal answer
intermediate
Why might a Flask project use a config.py file?
A config.py file stores configuration settings like secret keys, database URLs, and debug mode, keeping them separate from the main code.
Click to reveal answer
intermediate
What is the benefit of organizing Flask code into a package (a folder with __init__.py) instead of a single file?
Using a package allows splitting code into modules for routes, models, and helpers. This keeps the project clean, easier to maintain, and scalable.
Click to reveal answer
Which folder in a Flask project contains HTML templates?
Astatic
Bapp
Cconfig
Dtemplates
Where should you put CSS and JavaScript files in a Flask project?
Atemplates
Bconfig
Cstatic
Dapp.py
What is the main purpose of app.py in Flask?
ADefine routes and create the app instance
BStore CSS files
CHold HTML templates
DConfigure database migrations
Why use a config.py file in a Flask project?
ATo keep configuration settings separate
BTo store static images
CTo write HTML templates
DTo define URL routes
What does adding an __init__.py file to a folder do in a Flask project?
AAdds CSS styles
BMakes the folder a Python package
CCreates a static folder
DDeletes the folder
Describe the typical folder structure of a Flask project and the purpose of each main folder or file.
Think about where you put your HTML, styles, and main code.
You got /5 concepts.
    Explain why organizing Flask code into packages and separate files is helpful as a project grows.
    Compare a messy desk to a tidy one with labeled drawers.
    You got /4 concepts.

      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