0
0
FlaskHow-ToBeginner · 3 min read

How to Get Request Headers in Flask: Simple Guide

In Flask, you can get request headers using request.headers, which behaves like a dictionary containing all headers sent by the client. Import request from flask and access headers inside a route function with request.headers.get('Header-Name').
📐

Syntax

Use request.headers inside a Flask route to access HTTP headers. It acts like a dictionary where keys are header names.

  • request.headers: The object holding all headers.
  • request.headers.get('Header-Name'): Safely get a specific header value.
  • request.headers['Header-Name']: Get a header value but raises an error if missing.
python
from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def index():
    user_agent = request.headers.get('User-Agent')
    return f"User-Agent header is: {user_agent}"
💻

Example

This example shows a simple Flask app that reads the User-Agent header from the incoming request and returns it in the response.

python
from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def index():
    user_agent = request.headers.get('User-Agent')
    return f"Your User-Agent is: {user_agent}"

if __name__ == '__main__':
    app.run(debug=True)
Output
Your User-Agent is: Mozilla/5.0 (example user agent string)
⚠️

Common Pitfalls

Common mistakes when accessing headers in Flask include:

  • Using request.headers['Header-Name'] without checking if the header exists, which raises a KeyError.
  • Not importing request from flask.
  • Trying to access headers outside a request context (like outside a route function).

Always use request.headers.get() to avoid errors if the header is missing.

python
from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def index():
    # Wrong: may raise KeyError if header missing
    # user_agent = request.headers['User-Agent']

    # Right: safely get header or None
    user_agent = request.headers.get('User-Agent')
    return f"User-Agent: {user_agent}"
📊

Quick Reference

ActionCode ExampleNotes
Get all headersrequest.headersReturns all headers as a dictionary-like object
Get specific header safelyrequest.headers.get('Header-Name')Returns header value or None if missing
Get specific header directlyrequest.headers['Header-Name']Raises KeyError if header missing
Check if header exists'Header-Name' in request.headersReturns True or False

Key Takeaways

Use request.headers.get('Header-Name') to safely access headers without errors.
Always import request from flask before accessing headers.
Access request.headers only inside route functions or request context.
request.headers behaves like a dictionary with all HTTP headers.
Check header existence with 'Header-Name' in request.headers before direct access.