【发布时间】:2011-02-07 15:50:20
【问题描述】:
我正在尝试从表中获取所有行。
在控制器中我有:
meta.Session.query(User).all()
结果是[, ],但我在这个表中有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
接下来,在同一个文件中:
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)
【问题讨论】:
-
没有足够的信息来重现您的问题。
[, ]是什么?它不是有效的 python 表达式,但看起来您正在 HTML 上打印两个项目的列表[<User instance at ...>, <User instance at ...>],而没有正确转义它。 -
解决这个问题你可以先
from flask import Markup然后return Markup("%r") % User.query.all()。
标签: python sqlalchemy pylons