Django tip: How to set and get sessions?

/ #Django


Using sessions with Django is easy and it's something that you should know how to do as a developer.

Set up

Sessions comes built in with the standard Django setup. But it's always nice to just double check that "'django.contrib.sessions'," is in your list of INSTALLED_APPS in your settings.py file.

Setting sessions

In this little example, I will show you how to set a session.

def index(request):
    # String
    request.session['username'] = 'codewithstein'

    # Integers
    request.session['user_id'] = user.id

    # Booleans
    request.session['is_authenticated'] = True

    return render(request, 'index.html')

Great. Now we have a few session variables with strings, integers and boolean values.

Getting sessions

Getting sessions is also very easy.

def myaccount(request):
    # Check if "is_authenticated" is true. Default it to "False"
    if request.session.get('is_authenticated', False):
        print('You are authenticated')

    # Set username in a variable

    username = request.session.get('username', '')

    if username:
        print("Your username is %s" % username)
    
    return render(request, 'myaccount.html')

Deleting sessions

Now we know how to set and get sessions. But sometimes we want to delete them as well.

def logout(request):
    try:
        del request.session['is_authenticated']
    except KeyError:
        print("The key didn't exist")
    
    return redirect('index')

So now you know how to use sessions :-D


Comments

No comments yet...

Add comment

Newsletter

Subscribe to my weekly newsletter. One time per week I will send you a short summary of the tutorials I have posted in the past week.