我正在使用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中有这个正则表达式代码:
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但没有返回打印中的组的正确值?
谢谢.