小编Loï*_*lff的帖子

使用SQLAlchemy获取最后一个插入ID

我正在使用SQLAlchemy

import hashlib
import sqlalchemy as sa
from sqlalchemy import orm

from allsun.model import meta


t_user =  sa.Table("users",meta.metadata,autoload=True)

class Duplicat(Exception):
 pass
class LoginExistsException(Exception):
 pass
class EmailExistsException(Exception):
 pass

class User(object):
 """
 def __setattr__(self, key, value):
  if key=='password' :
   value=unicode(hashlib.sha512(value).hexdigset())
   object.__setattr__(self,key,value)
"""
 def loginExists(self):
  try:
   meta.Session.query(User).filter(User.login==self.login).one()
  except orm.exc.NoResultFound:
   pass
  else:
   raise LoginExistsException()

 def emailExists(self):
  try:
   meta.Session.query(User).filter(User.email==self.email).one()
  except orm.exc.NoResultFound:
   pass
  else:
   raise EmailExistsException()


 def save(self):
  meta.Session.begin()
  meta.Session.save(self)
  try:
   meta.Session.commit()
  except sa.exc.IntegrityError:
   raise Duplicat()
Run Code Online (Sandbox Code Playgroud)

当我打电话时,如何获取最后插入的ID:

user = User()
user.login = request.params['login']
user.password = hashlib.sha512(request.params['password']).hexdigest() …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

10
推荐指数
1
解决办法
1万
查看次数

为什么添加组时正则表达式不匹配?

我在python中有这个正则表达式代码:

if re.search(r"\{\\fad|fade\(\d{1,4},\d{1,4}\)\}", text):
  print(re.search(r"\{\\fad|fade\((\d{1,4}),(\d{1,4})\)\}", text).groups())
Run Code Online (Sandbox Code Playgroud)

text{\fad(200,200)}Épisode 101 : {\i1}The Ghost{\i0}\Nv. 1.03和从文件中读取(不知道是否有帮助).

这将返回以下内容:

(None, None)
Run Code Online (Sandbox Code Playgroud)

当我更改print中的正则表达式时r"\{\\fad\((\d{1,4}),(\d{1,4})\)\}",它返回正确的值:

(200, 200)
Run Code Online (Sandbox Code Playgroud)

任何人都可以看到为什么条件fad|fade匹配正则表达式re.search但没有返回打印中的组的正确值?

谢谢.

python regex

3
推荐指数
1
解决办法
302
查看次数

标签 统计

python ×2

regex ×1

sqlalchemy ×1