Bird
Raised Fist0
Flaskframework~10 mins

URL_for with static files 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 generate the URL for a static file named 'style.css'.

Flask
url = url_for([1], filename='style.css')
Drag options to blanks, or click blank then click option'
A'url'
B'file'
C'static'
D'path'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'url' or 'file' instead of 'static' as the endpoint name.
Forgetting to pass the filename argument.
2fill in blank
medium

Complete the code to generate the URL for a static image file named 'logo.png' inside the 'images' folder.

Flask
url = url_for('static', filename=[1])
Drag options to blanks, or click blank then click option'
A'images/logo.png'
B'static/logo.png'
C'logo.png'
D'/images/logo.png'
Attempts:
3 left
💡 Hint
Common Mistakes
Using just 'logo.png' without the folder path.
Including 'static/' in the filename argument.
3fill in blank
hard

Fix the error in the code to correctly generate the URL for 'script.js' in the static folder.

Flask
url = url_for([1], filename='script.js')
Drag options to blanks, or click blank then click option'
A'file'
B'static_files'
C'scripts'
D'static'
Attempts:
3 left
💡 Hint
Common Mistakes
Using a wrong endpoint name like 'static_files' or 'scripts'.
Not using quotes around the endpoint name.
4fill in blank
hard

Fill both blanks to generate the URL for 'main.css' inside the 'css' folder in static files.

Flask
url = url_for([1], filename=[2])
Drag options to blanks, or click blank then click option'
A'static'
B'main.css'
C'css/main.css'
D'static/main.css'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'static/main.css' as filename which is incorrect.
Using wrong endpoint names.
5fill in blank
hard

Fill all three blanks to generate the URL for 'app.js' inside the 'js' folder in static files with a query parameter 'v=2'.

Flask
url = url_for([1], filename=[2], [3])
Drag options to blanks, or click blank then click option'
A'static'
B'js/app.js'
Cv=2
Dversion=2
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'version=2' instead of 'v=2' as query parameter.
Including 'static/' in the filename.

Practice

(1/5)
1. What is the main purpose of using url_for('static', filename='...') in a Flask app?
easy
A. To define a new route for dynamic pages
B. To create a new static file in the project folder
C. To generate the correct URL for static files like CSS or images
D. To run the Flask development server

Solution

  1. Step 1: Understand the role of url_for in Flask

    url_for is used to build URLs for routes or static files dynamically.
  2. Step 2: Recognize the use of 'static' endpoint

    Using url_for('static', filename='...') specifically generates the URL for static files like CSS, JavaScript, or images.
  3. Final Answer:

    To generate the correct URL for static files like CSS or images -> Option C
  4. Quick Check:

    url_for static files = generate URL [OK]
Hint: Remember: url_for('static', filename=...) builds static file URLs [OK]
Common Mistakes:
  • Thinking url_for creates files instead of URLs
  • Using url_for for running the server
  • Confusing static files with dynamic routes
2. Which of the following is the correct syntax to link a CSS file named style.css located in the static/css folder using url_for in a Flask template?
easy
A.
B.
C.
D.

Solution

  1. Step 1: Understand the folder structure for static files

    Static files are placed inside the static folder, so the path inside filename is relative to it.
  2. Step 2: Use correct relative path in filename

    The correct path is css/style.css without leading slash or extra folder names.
  3. Final Answer:

    <link href="{{ url_for('static', filename='css/style.css') }}" rel="stylesheet"> -> Option B
  4. Quick Check:

    Correct relative path in filename = [OK]
Hint: Use relative path inside static folder without leading slash [OK]
Common Mistakes:
  • Adding leading slash in filename path
  • Including 'static' folder name inside filename
  • Swapping folder and file names
3. Given this Flask template snippet:
<img src="{{ url_for('static', filename='images/logo.png') }}" alt="Logo">

What will be the rendered HTML if the app is running on http://localhost:5000?
medium
A.
B.
C.
D.

Solution

  1. Step 1: Understand what url_for returns for static files

    By default, url_for('static', filename='...') returns a relative URL starting with /static/.
  2. Step 2: Check the rendered HTML output

    The src attribute will be /static/images/logo.png, not the full URL with domain.
  3. Final Answer:

    <img src="/static/images/logo.png" alt="Logo"> -> Option A
  4. Quick Check:

    url_for static returns relative URL starting with /static/ [OK]
Hint: url_for static returns relative path starting with /static/ [OK]
Common Mistakes:
  • Expecting full URL with domain
  • Missing leading slash in URL
  • Using wrong folder path
4. You wrote this in your Flask template:
<script src="{{ url_for('static', filename='js/app.js') }}"></script>

But the browser shows a 404 error for the script file. What is the most likely cause?
medium
A. The filename argument should not include folder names
B. You forgot to import url_for in your Flask app
C. You should use url_for('app', filename='js/app.js') instead
D. The js/app.js file is missing from the static folder

Solution

  1. Step 1: Check the URL generated by url_for

    The syntax is correct, so the URL points to /static/js/app.js.
  2. Step 2: Verify the file exists in the static folder

    A 404 error means the file is not found at that location, so likely the file is missing or misplaced.
  3. Final Answer:

    The js/app.js file is missing from the static folder -> Option D
  4. Quick Check:

    404 error means missing static file [OK]
Hint: 404 on static means file missing or wrong path [OK]
Common Mistakes:
  • Changing the endpoint name from 'static'
  • Removing folder names from filename
  • Assuming url_for needs import in template
5. You want to serve a user-uploaded image stored in static/uploads/user1.png. You wrote this in your template:
<img src="{{ url_for('static', filename='uploads/user1.png') }}" alt="User Image">

Later, you move the uploads folder outside static for security. How can you still serve the image correctly?
hard
A. Create a new route that sends the file using send_from_directory from the uploads folder
B. Change url_for to url_for('uploads', filename='user1.png')
C. Move the uploads folder back inside static and keep using url_for('static')
D. Use url_for('static', filename='../uploads/user1.png') to go up one folder

Solution

  1. Step 1: Understand static folder limitations

    Flask only serves files inside the static folder automatically.
  2. Step 2: Use a custom route to serve files outside static

    To serve files outside static, define a route using send_from_directory to send files from the uploads folder.
  3. Final Answer:

    Create a new route that sends the file using send_from_directory from the uploads folder -> Option A
  4. Quick Check:

    Files outside static need custom route with send_from_directory [OK]
Hint: Serve files outside static with send_from_directory route [OK]
Common Mistakes:
  • Trying to use url_for with paths outside static
  • Using relative paths with ../ in filename
  • Assuming Flask serves all folders automatically
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