2010-04-13 34 views
17

Tôi đang cố gắng lấy tất cả các hàng từ một bảng.sqlalchemy, chọn tất cả các hàng

Trong điều khiển tôi có:

meta.Session.query(User).all() 

Kết quả là [, ], nhưng tôi có 2 dòng trong bảng này.

tôi sử dụng mô hình này cho bảng:

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 

Và tiếp theo, trong cùng một tệp:

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) 

. . . . . . . .

+7

Không có đủ thông tin để tái tạo vấn đề của bạn. '[,]' Là gì? Nó không phải là biểu thức python hợp lệ, nhưng có vẻ như bạn đang in danh sách hai mục '[, ]' trên HTML mà không thoát đúng cách nó. –

+0

Để giải quyết rằng bạn có thể 'từ bình nhập khẩu Markup' và sau đó' return Markup ("% r")% User.query.all() '. –

Trả lời

25

Bạn có thể dễ dàng nhập mô hình của bạn và chạy này:

from models import User 

# User is the name of table that has a column name 
users = User.query.all() 

for user in users: 
    print user.name 
Các vấn đề liên quan