Handling Query Parameters
Query parameters are the ?key=value?key=value part of a URL.
Example:
/search?q=flask&page=2/search?q=flask&page=2
Accessing query parameters
Flask stores query parameters in request.argsrequest.args.
from flask import Flask, request
app = Flask(__name__)
@app.route("/search")
def search():
q = request.args.get("q", "")
page = request.args.get("page", default=1, type=int)
return {"q": q, "page": page}from flask import Flask, request
app = Flask(__name__)
@app.route("/search")
def search():
q = request.args.get("q", "")
page = request.args.get("page", default=1, type=int)
return {"q": q, "page": page}Why use type=type=?
- Converts the string to the type you expect
- If conversion fails, Flask returns the default (instead of crashing)
Handling multiple values
Some URLs have repeated params:
/filter?tag=python&tag=flask/filter?tag=python&tag=flask
tags = request.args.getlist("tag")tags = request.args.getlist("tag")Validation basics
Even with type=inttype=int, you still should validate:
- ranges (page >= 1)
- allowed values (sort in top)
If invalid, return a clear error or a 400 status code.
๐งช Try It Yourself
Exercise 1 โ Create a Flask App
Exercise 2 โ Dynamic Route
Exercise 3 โ Return JSON
If this helped you, consider buying me a coffee โ
Buy me a coffeeWas this page helpful?
Let us know how we did
