本文整理汇总了Python中inpho.model.Session.rollback方法的典型用法代码示例。如果您正苦于以下问题:Python Session.rollback方法的具体用法?Python Session.rollback怎么用?Python Session.rollback使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类inpho.model.Session
的用法示例。
在下文中一共展示了Session.rollback方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _evaluate
# 需要导入模块: from inpho.model import Session [as 别名]
# 或者: from inpho.model.Session import rollback [as 别名]
def _evaluate(self, evaltype, id, id2=None, uid=None, username=None,
degree=-1, maxdegree=4, errors=0):
"""
Function to submit an evaluation. Takes a POST request containing the consequesnt id and
all or none of: generality, relatedness, hyperrank, hyporank.
"""
id2 = request.params.get('id2', id2)
uid = request.params.get('uid', uid)
try:
username = h.auth.get_username_from_cookie(request.params.get('cookieAuth', ''))
except ValueError:
# invalid IP, abort
username = None
print "grabbing eval for", username, uid
if request.environ.get('REMOTE_USER', False):
username = request.environ.get('REMOTE_USER', username)
evaluation = self._get_evaluation(id, id2, None, username)
elif username:
evaluation = self._get_evaluation(id, id2, None, username)
else:
evaluation = self._get_anon_evaluation(id, id2, request.environ.get('REMOTE_ADDR', '0.0.0.0'))
# Populate proper generality, relatedness, hyperrank and hyporank values
evaluation.time = time.time()
# Attempt to convert to integers, if unable, throw HTTP 400
try:
setattr(evaluation, evaltype,
int(request.params.get('degree', getattr(evaluation, evaltype))))
except TypeError:
abort(400)
# Create and commit evaluation
try:
Session.flush()
Session.commit()
except IntegrityError:
Session.rollback()
if not errors:
self._evaluate(evaltype, id, id2, username,
degree, maxdegree, errors+1)
# Issue an HTTP success
response.status_int = 200
return "OK"