Bird
Raised Fist0
Flaskframework~10 mins

Serving JavaScript 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 import the Flask class.

Flask
from flask import [1]
Drag options to blanks, or click blank then click option'
Ajsonify
Brender_template
Crequest
DFlask
Attempts:
3 left
💡 Hint
Common Mistakes
Importing render_template instead of Flask
Using incorrect module name
2fill in blank
medium

Complete the code to create a Flask app instance.

Flask
app = [1](__name__)
Drag options to blanks, or click blank then click option'
AFlask
Brequest
Crender_template
Djsonify
Attempts:
3 left
💡 Hint
Common Mistakes
Calling render_template instead of Flask
Forgetting to pass __name__
3fill in blank
hard

Fix the error in the route decorator to serve JavaScript files.

Flask
@app.route('/static/[1]')
Drag options to blanks, or click blank then click option'
Apath:filename
Bfilename
C<path:filename>
D<filename>
Attempts:
3 left
💡 Hint
Common Mistakes
Using angle brackets incorrectly
Missing 'path:' prefix
4fill in blank
hard

Fill both blanks to send a JavaScript file from the static folder.

Flask
return [1]('static', filename=[2])
Drag options to blanks, or click blank then click option'
Asend_from_directory
Bsend_file
Cfilename
Dfile
Attempts:
3 left
💡 Hint
Common Mistakes
Using send_file without folder path
Passing wrong variable name for filename
5fill in blank
hard

Fill all three blanks to define a route that serves JavaScript files correctly.

Flask
@app.route('/js/[1]')
def serve_js([2]):
    return [3]('static/js', filename=[2])
Drag options to blanks, or click blank then click option'
A<filename>
Bfile
Csend_from_directory
Dsend_file
Attempts:
3 left
💡 Hint
Common Mistakes
Mismatching route and function parameter names
Using send_file without folder path

Practice

(1/5)
1. In Flask, where should you place your JavaScript files so they can be served correctly to the browser?
easy
A. Inside the static folder
B. Inside the templates folder
C. In the root project directory
D. Inside the instance folder

Solution

  1. Step 1: Understand Flask static file serving

    Flask automatically serves files placed in the static folder to the browser.
  2. Step 2: Identify correct folder for JavaScript files

    JavaScript files must be inside the static folder to be accessible via URL.
  3. Final Answer:

    Inside the static folder -> Option A
  4. Quick Check:

    Static folder = JavaScript files served [OK]
Hint: Always put JS files in the static folder for Flask to serve them [OK]
Common Mistakes:
  • Placing JS files in templates folder
  • Putting JS files in root directory
  • Expecting instance folder to serve static files
2. Which of the following is the correct way to link a JavaScript file named app.js located in the static folder inside your Flask HTML template?
easy
A. <script src="/templates/app.js"></script>
B. <script src="/static/app.js"></script>
C. <script href="/static/app.js"></script>
D. <link src="/static/app.js">

Solution

  1. Step 1: Use correct HTML tag for JavaScript

    The <script> tag with the src attribute is used to link JS files.
  2. Step 2: Use correct path to static folder

    Flask serves static files under the /static/ URL prefix, so path should be /static/app.js.
  3. Final Answer:

    <script src="/static/app.js"></script> -> Option B
  4. Quick Check:

    Script tag + /static path = correct link [OK]
Hint: Use
Common Mistakes:
  • Using <link> instead of <script>
  • Using href instead of src in <script>
  • Linking to /templates folder
3. Given this Flask route and folder structure, what will happen when the browser requests /static/script.js?
app.py:
from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello'
Folder structure: - static/ - script.js - app.py
medium
A. The home route will return 'Hello' instead
B. A 404 Not Found error will occur
C. Flask will raise a runtime error
D. The file script.js will be served automatically

Solution

  1. Step 1: Understand Flask static file serving default behavior

    Flask automatically serves files inside the static folder at the URL path /static/filename.
  2. Step 2: Check if route conflicts with static path

    The / route does not conflict with /static/script.js, so static file is served.
  3. Final Answer:

    The file script.js will be served automatically -> Option D
  4. Quick Check:

    Static folder files served automatically at /static/ [OK]
Hint: Files in static folder served at /static/filename URL [OK]
Common Mistakes:
  • Thinking Flask needs explicit route for static files
  • Confusing root route with static file path
  • Expecting 404 without static folder
4. You wrote this Flask route to serve a JavaScript file manually:
@app.route('/js/app.js')
def serve_js():
    return open('static/app.js').read()
But the browser shows the JavaScript code as plain text instead of running it. What is the problem?
medium
A. The response is missing the correct Content-Type header for JavaScript
B. The file path 'static/app.js' is incorrect
C. You cannot serve JavaScript files manually in Flask
D. The route path should be '/static/app.js' instead of '/js/app.js'

Solution

  1. Step 1: Check how Flask serves static files

    Flask sets the Content-Type header to 'application/javascript' automatically for static files.
  2. Step 2: Identify missing Content-Type in manual response

    Returning raw file content without setting Content-Type causes browser to treat it as plain text.
  3. Final Answer:

    The response is missing the correct Content-Type header for JavaScript -> Option A
  4. Quick Check:

    Set Content-Type to application/javascript for JS files [OK]
Hint: Always set Content-Type header when serving JS manually [OK]
Common Mistakes:
  • Not setting Content-Type header
  • Assuming Flask auto-sets headers in manual routes
  • Using wrong file path without checking
5. You want to serve multiple JavaScript files from a custom folder named assets/js instead of the default static folder. Which Flask code snippet correctly serves these files at URL path /js/<filename>?
hard
A. @app.route('/js/<filename>') def serve_js(filename): return open(f'assets/js/{filename}').read()
B. from flask import send_file @app.route('/js/<filename>') def serve_js(filename): return send_file(f'assets/js/{filename}')
C. from flask import send_from_directory @app.route('/js/<filename>') def serve_js(filename): return send_from_directory('assets/js', filename)
D. @app.route('/js/<filename>') def serve_js(filename): return redirect(f'/static/{filename}')

Solution

  1. Step 1: Use send_from_directory to serve files from custom folder

    Flask's send_from_directory safely serves files from any folder with correct headers.
  2. Step 2: Map URL path to custom folder

    The route /js/<filename> calls send_from_directory('assets/js', filename) to serve files from assets/js.
  3. Final Answer:

    Use send_from_directory with assets/js folder -> Option C
  4. Quick Check:

    send_from_directory + custom folder = correct serving [OK]
Hint: Use send_from_directory to serve files outside static folder [OK]
Common Mistakes:
  • Using send_file without setting headers
  • Reading file content without headers
  • Redirecting to static folder without files there
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