2011-02-06 51 views
0

我在用SqlAlchemy(通过Elixir)试图使用Pylons。从模型对象查询时出现问题

这里是我的TESTDB /模型/ entities.py:

from elixir import * 

metadata.bind = "mysql://testdb:[email protected]/testdb" 
metadata.bind.echo = True 

class Post(Entity): 
    text = Field(Unicode(128)) 

这里是控制器:

import logging 

from pylons import request, response, session, tmpl_context as c, url 
from pylons.controllers.util import abort, redirect 

from testdb.lib.base import BaseController, render 

log = logging.getLogger(__name__) 

from testdb.model.entities import * 

class MainController(BaseController): 

    def index(self): 
     c.posts = Post.query.all() 
     print "Test" 
     return render('/index.mako') 

    def submit(self): 
     post = Post() 
     post.text = request.POST.get['text'] 
     session.commit() 

当我运行应用程序,我得到一个错误说:

AttributeError: type object 'Post' has no attribute 'query' 

有人知道我在做什么错吗?

回答

1

的答案如下:

entities.py在底部以下两行丢失:

setup_all() 
create_all() 
0

我不知道药剂很好,但是不在.ini中放入以下内容吗?

sqlalchemy.url = mysql://user:[email protected]/dbname?charset=utf8&use_unicode=0 
sqlalchemy.pool_recycle = 3600 

?之后的所有内容都是为了避免编码问题。第二行禁止MySQL关闭非活动连接(实际上它每小时重新连接一次)。

+0

那么,你完全改变了这个问题后,我的答案看起来有点愚蠢... – 2011-02-07 16:55:23