0

SqlAlchemy で (Elixir を介して) Pylons を使用しようとしています。

ここに私のtestdb/model/entities.pyがあります:

from elixir import *

metadata.bind = "mysql://testdb:hundertwasser@localhost/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'

誰かが私が間違っていることを知っていますか?

4

2 に答える 2

1

答えは次のとおりです。

entity.pyの下部に次の2行がありません。

setup_all()
create_all()
于 2011-02-06T23:46:29.093 に答える
0

Elixir はよくわからないのですが、.ini に以下を入れるだけで十分ではありませんか?

sqlalchemy.url = mysql://user:pass@localhost/dbname?charset=utf8&use_unicode=0
sqlalchemy.pool_recycle = 3600

後のすべてのもの?は、エンコードの問題を回避することです。2 行目は、MySQL が非アクティブな接続を閉じないようにします (実際には 1 時間ごとに再接続します)。

于 2011-02-06T21:20:49.573 に答える