What is the difference between session[""] and session.get("")?

40 Views Asked by At

I am using flask 3.0.2 and I am wondering if there are any benefits to using session.get("") over session[""] or vise versa. I see that both do pretty much the same thing but, it makes me wonder why both exist for the same purpose.

3

There are 3 best solutions below

1
16BitNarwhal On BEST ANSWER

session[""] directly accesses the key value pair (like in a dictionary) and may throw a KeyError if the key doesn't exist.

session.get("key") is more like a wrapper around a dictionary with safer access: if a key doesn't exist, it returns None. You can also use session.get("", defaultValue) to set a default value instead of None

0
Daniel Viglione On

This is common syntax in Python. Just as os.environ[] raises an exception if the environmental variable does not exist, and os.environ.get() returns None if the environment variable does not exist, session.get() returns None if the session variable is not in the session and session[“”] will throw an exception. The key is the square bracket notation versus a function invocation using get().

0
Saddamcoder On

session[""]: This syntax is used to directly access a value stored in the session using its key.If the key doesn't exist in the session, accessing it directly like this will raise a KeyError.It's commonly used when you expect the key to always exist in the session and you want your program to raise an error if it doesn't. Example:

# Assuming 'session' is a dictionary-like object representing a session
value = session["key"]

session.get(""): This is a method provided by the session object to retrieve a value associated with a given key.If the key exists, it returns the corresponding value; if not, it returns None by default (or a default value provided as the second argument).It's often used when you're not sure whether the key exists in the session, and you want to handle both cases (key exists and key doesn't exist) gracefully without raising an error. Example:

# Assuming 'session' is a dictionary-like object representing a session
value = session.get("key")
# Alternatively, you can provide a default value
value_with_default = session.get("key", default_value)