0

私のプロジェクトは Pyramid に基づいています。

Pyramid のデフォルトの足場は非常に単純です: view.pymodels.pyなどです。

それらを置き換えるためにいくつかのディレクトリを作成しました。例えば:

view.py--> ディレクトリを表示

models.py--> モデルディレクトリ

次に、次の名前のファイルを作成しますlogin.py

from pyramid.httpexceptions import HTTPForbidden
from pyramid.response import Response
from pyramid.view import view_config
import logging

from ..model import (
    DBSession,
    DynUser,
    )

log = logging.getLogger(__name__)

def find_user(account):
    #user = None
    try:
        user = DBSession.query(DynUser).filter(DynUser.username==account).first()
        #one = DBSession.query(MyModel).filter(MyModel.name=='one').first()
    except ValueError:
        #log.warning("invalidate id %s input." % request.matchdict['id'])
        log.warning("invalidate id %s input.")
    except Exception:
        log.error("database error!")

    if not user:
        return HTTPForbidden()

    return dict(user=user)

DBSession をインポートしました。それでもこのエラーが発生するのはなぜですか?

tip
--------------------------------------------------------------------------
Undefined variable from import: DBSession

Undefined variable from import: DBSession

DBSession Found at: dyncms.model.meta


DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
4

2 に答える 2

0

あなたはそれについて言及しませんでしたが、私はあなたがに移動models.pyしたと仮定しますmodel/__init__.py

from ..modelslogin.pyがサブディレクトリ(など)にある場合にのみ機能しますlogin/login.py。そうでない場合は、を使用する必要がありますfrom .models import

于 2012-10-09T09:24:31.220 に答える
0

モデルディレクトリ内

__init__.py 
# package
from .meta import DBSession
from .meta import Base
from .book import Book

meta.py
from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy.orm import (
    scoped_session,
    sessionmaker,
    )

from zope.sqlalchemy import ZopeTransactionExtension

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()
于 2012-10-10T13:04:03.813 に答える