我试图从表中获取所有行.
在控制器我有:
meta.Session.query(User).all()
Run Code Online (Sandbox Code Playgroud)
结果是[, ],但我在这个表中有2行.
我在表中使用这个模型:
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
Run Code Online (Sandbox Code Playgroud)
接下来,在同一个文件中:
class User(object):
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()
orm.mapper(User, t_user)
Run Code Online (Sandbox Code Playgroud)
........
我正在使用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) 任何人都知道如果在SQL炼金术中我怎么能算数
COUN(IF(table_row = 1 AND table_row2 =2),1,0)
Run Code Online (Sandbox Code Playgroud)
我做这样的事,
func.COUNT(func.IF((TransactionMessage.tm_read==0 and TransactionMessage.tm_type==1),1,0)).label('t_message_count'),
Run Code Online (Sandbox Code Playgroud)
但是如果使用TransactionMesssage.tm_read和TransactinMessage.tm_type,sqlalchemy会分成2个单独的
可以帮我解决问题吗?