本文整理匯總了Python中globals.Session._unlock方法的典型用法代碼示例。如果您正苦於以下問題:Python Session._unlock方法的具體用法?Python Session._unlock怎麽用?Python Session._unlock使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類globals.Session
的用法示例。
在下文中一共展示了Session._unlock方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: wsgibase
# 需要導入模塊: from globals import Session [as 別名]
# 或者: from globals.Session import _unlock [as 別名]
#.........這裏部分代碼省略.........
dpk = dpost[key]
if isinstance(dpk, list):
value = [x.value for x in dpk]
elif not dpk.filename:
value = dpk.value
else:
value = dpk
request.post_vars[key] = request.vars[key] = value
# ##################################################
# load cookies
# ##################################################
request.cookies = Cookie.SimpleCookie()
response.cookies = Cookie.SimpleCookie()
if request.env.http_cookie:
request.cookies.load(request.env.http_cookie)
# ##################################################
# try load session or create new session file
# ##################################################
session.connect(request, response)
# ##################################################
# set no-cache headers
# ##################################################
response.headers['Cache-Control'] = \
'no-store, no-cache, must-revalidate, post-check=0, pre-check=0'
response.headers['Expires'] = \
time.strftime('%a, %d %b %Y %H:%M:%S GMT',
time.gmtime())
response.headers['Pragma'] = 'no-cache'
# ##################################################
# run controller
# ##################################################
if not items[1] == 'static':
serve_controller(request, response, session)
except HTTP, http_response:
# ##################################################
# on sucess, try store session in database
# ##################################################
session._try_store_in_db(request, response)
# ##################################################
# on sucess, committ database
# ##################################################
if response._custom_commit:
response._custom_commit()
else:
SQLDB.close_all_instances(SQLDB.commit)
# ##################################################
# if session not in db try store session on filesystem
# ##################################################
session._try_store_on_disk(request, response)
# ##################################################
# store cookies in headers
# ##################################################
if session._secure:
response.cookies[response.session_id_name]['secure'] = \
True
http_response.headers['Set-Cookie'] = [str(cookie)[11:]
for cookie in response.cookies.values()]
# ##################################################
# whatever happens return the intended HTTP response
# ##################################################
session._unlock(response)
return http_response.to(responder)
except RestrictedError, e:
# ##################################################
# on application error, rollback database
# ##################################################
if response._custom_rollback:
response._custom_rollback()
else:
SQLDB.close_all_instances(SQLDB.rollback)
try:
ticket = e.log(request)
except:
ticket = 'unknown'
logging.error(e.traceback)
session._unlock(response)
http_error_status = check_error_route(500, items[0])
return HTTP(http_error_status, error_message_ticket
% dict(ticket=ticket), web2py_error='ticket %s'
% ticket).to(responder)