Q: How to pop a second value in session? I have two sessions on my login system, 'admin' and 'standard', I'm popping 'admin' off the session stack when I click logout, I'm wondering how I'd pop the standard session?
# Logout of System
@app.route('/logout')
def logout():
    session.pop('is_admin')
    #session.pop('standard')
    return render_template('/index.html')

Another variation I tried, which does not work
# Logout of System
@app.route('/logout')
def logout():
    if 'is_admin' in session:
        session.pop('is_admin')
    return render_template('/index.html')
    if 'is_standard' in session:
        session.pop('standard')
    return render_template('/index.html')


A: Why don't you try this:
@app.route('/logout')
def logout():
    for s in ['is_admin', 'standard']:
        try:
            session.pop(s)
        except KeyError:
            continue
    return render_template('/index.html')

The above will pop both keys if they exist, or only the one which is there.
This is how your route will look like if you incorporate the list comprehension from sobolevn's answer
@app.route('/logout')
def logout():
    [session.pop(i, None) for i in ['is_admin', 'standard']]
    return render_template('/index.html')

You second variant should be:
# Logout of System
@app.route('/logout')
def logout():
    if 'is_admin' in session:
        session.pop('is_admin')
        return render_template('/index.html')
    if 'is_standard' in session:
        session.pop('standard')
        return render_template('/index.html')

It will perform slower than my variant, and it is more verbose.
Session in flask is a wrapper around dictionary. Here is why you can't iterate over session, and remove elements from it:
In [35]: session =  {'std': 'bar', 'admin':'foo', 'manager': 'baz'}

In [36]: for s in session:
    try:
        session.pop(s)
    except KeyError:
        continue
   ....:     
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-36-14e9c7f174be> in <module>()
----> 1 for s in session:
      2     try:
      3         session.pop(s)
      4     except KeyError:
      5         continue

RuntimeError: dictionary changed size during iteration

This is showing you how it works for both keys:
In [37]: session =  {'std': 'bar', 'admin':'foo', 'manager': 'baz'}

In [38]: for s in ['std', 'admin']:
    try:
        session.pop(s)
    except KeyError:
        continue
   ....:     

In [39]: print session
{'manager': 'baz'}

And after session is modified, here what you will get:
In [41]: for s in ['std', 'admin']:
    try:
        session.pop(s)
    except KeyError:
        print "I didn't find %s" % s
        continue
   ....:     
I didn't find std
I didn't find admin

I hope this makes my answer clear.

A: Ok, here's a one-liner:
>>> s = {'is_admin': 1, 'standard': 1}
>>> [s.pop(i, None) for i in ['is_admin', 'standard']]
[1, 1]
>>> s
{}


pop(key[, default])
If key is in the dictionary, remove it and return its value, else
  return default. If default is not given and key is not in the
  dictionary, a KeyError is raised.

