How to Get Query Parameters in Flask: Simple Guide
In Flask, you get query parameters using
request.args, which is a dictionary-like object containing all URL query parameters. Access a parameter by its name like request.args.get('param_name') to safely retrieve its value.Syntax
Use request.args to access query parameters in Flask. It behaves like a dictionary where keys are parameter names and values are parameter values.
request.args.get('key'): Returns the value for the given key orNoneif not present.request.args['key']: Returns the value but raises an error if the key is missing.request.args.getlist('key'): Returns a list of values if the parameter appears multiple times.
python
from flask import request # Access single query parameter safely value = request.args.get('param') # Access single query parameter, raises error if missing value = request.args['param'] # Access multiple values for the same parameter values = request.args.getlist('param')
Example
This example shows a Flask app that reads a query parameter named name from the URL and returns a greeting message. If name is missing, it returns a default greeting.
python
from flask import Flask, request app = Flask(__name__) @app.route('/greet') def greet(): name = request.args.get('name', 'Guest') return f"Hello, {name}!" if __name__ == '__main__': app.run(debug=True)
Output
When you visit http://localhost:5000/greet?name=Alice, the output is: Hello, Alice!
When you visit http://localhost:5000/greet without parameters, the output is: Hello, Guest!
Common Pitfalls
Common mistakes when getting query parameters in Flask include:
- Using
request.args['key']without checking if the key exists, which raises aKeyError. - Not providing a default value with
get(), leading toNonevalues that may cause errors later. - Ignoring that parameters can have multiple values and using
get()instead ofgetlist()when needed.
python
from flask import Flask, request app = Flask(__name__) @app.route('/wrong') def wrong(): # This will raise KeyError if 'param' is missing value = request.args['param'] return f"Value is {value}" @app.route('/right') def right(): # Safe access with default value = request.args.get('param', 'default') return f"Value is {value}"
Quick Reference
Summary tips for getting query parameters in Flask:
- Always use
request.args.get('key', default)to avoid errors. - Use
request.args.getlist('key')to handle multiple values. request.argsis read-only and reflects the URL query string.- Query parameters are strings; convert types as needed.
Key Takeaways
Use request.args.get('param') to safely get query parameters in Flask.
Provide a default value in get() to avoid None results causing errors.
Use getlist() when expecting multiple values for the same parameter.
Avoid accessing parameters directly with request.args['param'] unless sure it exists.
Query parameters are strings; convert them to needed types explicitly.