Bird
Raised Fist0
Flaskframework~10 mins

Blueprint routes and templates in Flask - Interactive Code Practice

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

Complete the code to register a blueprint named 'blog' in a Flask app.

Flask
from flask import Flask, Blueprint

blog = Blueprint('blog', __name__)

app = Flask(__name__)
app.[1](blog)
Drag options to blanks, or click blank then click option'
Aregister_blueprint
Badd_blueprint
Cinclude_blueprint
Dattach_blueprint
Attempts:
3 left
💡 Hint
Common Mistakes
Using methods like add_blueprint or include_blueprint which do not exist.
2fill in blank
medium

Complete the route decorator to define a route '/post' inside the 'blog' blueprint.

Flask
from flask import Blueprint

blog = Blueprint('blog', __name__)

@blog.[1]('/post')
def show_post():
    return 'Post page'
Drag options to blanks, or click blank then click option'
Aregister
Burl_for
Cendpoint
Droute
Attempts:
3 left
💡 Hint
Common Mistakes
Using url_for or endpoint as decorators which are not route decorators.
3fill in blank
hard

Fix the error in the blueprint template rendering code to render 'post.html'.

Flask
from flask import Blueprint, render_template

blog = Blueprint('blog', __name__, template_folder='templates')

@blog.route('/post')
def show_post():
    return [1]('post.html')
Drag options to blanks, or click blank then click option'
Arender_template
Brender
Crender_html
Dtemplate_render
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect function names like render or render_html.
4fill in blank
hard

Fill both blanks to create a blueprint named 'shop' with a URL prefix '/store'.

Flask
from flask import Blueprint

shop = Blueprint('[1]', __name__, url_prefix='[2]')
Drag options to blanks, or click blank then click option'
Ashop
Bstore
C/shop
D/store
Attempts:
3 left
💡 Hint
Common Mistakes
Omitting the leading slash in the URL prefix or mixing names.
5fill in blank
hard

Fill all three blanks to create a route '/item/' in the 'shop' blueprint that renders 'item.html' passing the id.

Flask
from flask import Blueprint, render_template

shop = Blueprint('shop', __name__)

@shop.[1]('/item/<int:id>')
def show_item([2]):
    return [3]('item.html', id=id)
Drag options to blanks, or click blank then click option'
Aroute
Bid
Crender_template
Durl_for
Attempts:
3 left
💡 Hint
Common Mistakes
Using url_for instead of render_template, or wrong parameter names.

Practice

(1/5)
1. What is the main purpose of using a Blueprint in a Flask application?
easy
A. To handle user authentication automatically
B. To organize routes and templates into reusable components
C. To create a new Flask app instance
D. To connect Flask with a database

Solution

  1. Step 1: Understand Blueprint role

    A Blueprint groups related routes and templates to keep code organized.
  2. Step 2: Compare other options

    Connecting to databases, creating app instances, or handling authentication are separate tasks.
  3. Final Answer:

    To organize routes and templates into reusable components -> Option B
  4. Quick Check:

    Blueprint = organize routes/templates [OK]
Hint: Blueprints group routes/templates for better app structure [OK]
Common Mistakes:
  • Thinking Blueprint creates the app instance
  • Confusing Blueprint with database connection
  • Assuming Blueprint handles authentication automatically
2. Which of the following is the correct way to register a Blueprint named blog with a Flask app app using the URL prefix /blog?
easy
A. app.register_blueprint(blog, url_prefix='/blog')
B. app.register_blueprint('/blog', blog)
C. app.register_blueprint(blog.prefix('/blog'))
D. app.register_blueprint(blog, prefix_url='/blog')

Solution

  1. Step 1: Recall correct method signature

    The method is register_blueprint(blueprint, url_prefix='...').
  2. Step 2: Check options for correct syntax

    Only app.register_blueprint(blog, url_prefix='/blog') uses the correct method and parameter names.
  3. Final Answer:

    app.register_blueprint(blog, url_prefix='/blog') -> Option A
  4. Quick Check:

    register_blueprint with url_prefix = app.register_blueprint(blog, url_prefix='/blog') [OK]
Hint: Use url_prefix parameter to set Blueprint URL base [OK]
Common Mistakes:
  • Swapping parameter order
  • Using wrong parameter name like prefix_url
  • Calling prefix as a method on Blueprint
3. Given this Blueprint code:
from flask import Blueprint, render_template
blog = Blueprint('blog', __name__, template_folder='templates')

@blog.route('/post')
def show_post():
    return render_template('post.html')

And this main app code:
from flask import Flask
app = Flask(__name__)
app.register_blueprint(blog, url_prefix='/blog')

What URL should you visit to see the post.html template rendered?
medium
A. /blog
B. /post
C. /blog/post
D. /post/blog

Solution

  1. Step 1: Understand route and url_prefix

    The Blueprint route is '/post', and the Blueprint is registered with prefix '/blog'.
  2. Step 2: Combine prefix and route

    The full URL becomes '/blog/post' to access the route.
  3. Final Answer:

    /blog/post -> Option C
  4. Quick Check:

    url_prefix + route = /blog/post [OK]
Hint: Combine url_prefix and route for full URL [OK]
Common Mistakes:
  • Ignoring url_prefix and using only route
  • Swapping url_prefix and route order
  • Assuming url_prefix is not added to route
4. What is wrong with this Blueprint registration code?
from flask import Flask
app = Flask(__name__)
app.register_blueprint(blog, prefix='/blog')
medium
A. You cannot register blueprints in Flask
B. Blueprint must be registered before app creation
C. Blueprint name must be 'app' to register
D. The parameter should be url_prefix, not prefix

Solution

  1. Step 1: Check parameter name in register_blueprint

    The correct parameter to set URL prefix is url_prefix, not prefix.
  2. Step 2: Validate other options

    Blueprints register after app creation; name can be anything; Flask supports blueprints.
  3. Final Answer:

    The parameter should be url_prefix, not prefix -> Option D
  4. Quick Check:

    Correct param is url_prefix [OK]
Hint: Use url_prefix, not prefix, when registering Blueprint [OK]
Common Mistakes:
  • Using prefix instead of url_prefix
  • Trying to register Blueprint before app exists
  • Thinking Blueprint name must be 'app'
5. You have two Blueprints, admin and user, both with a route /dashboard. How can you register them in your Flask app to avoid URL conflicts and keep URLs clear?
hard
A. Register each Blueprint with a different url_prefix, like /admin and /user
B. Rename one Blueprint's route to /dashboard2
C. Register both Blueprints without any url_prefix
D. Use the same url_prefix for both Blueprints

Solution

  1. Step 1: Understand URL conflicts

    Both Blueprints have the same route /dashboard, which causes conflicts if no prefix is used.
  2. Step 2: Use url_prefix to separate routes

    Assigning different url_prefix values like /admin and /user keeps URLs unique and organized.
  3. Final Answer:

    Register each Blueprint with a different url_prefix, like /admin and /user -> Option A
  4. Quick Check:

    Different url_prefix avoids route conflicts [OK]
Hint: Use unique url_prefix for each Blueprint to avoid conflicts [OK]
Common Mistakes:
  • Not using url_prefix and causing route clashes
  • Renaming routes manually instead of using prefixes
  • Using same url_prefix for multiple Blueprints
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