English 中文(简体)
如何在SQLAlchemy宣讲课中使用引擎?
原标题:How can I use the Engine within a SQLAlchemy declarative class?

假设在我的 < code> user. py 模块中有这个 User 模块。 我将使用这个 < code> User 作为更大应用程序的一部分。 我会在主应用程序模块中配置 < code> Engine (数据库连接) 。 但是...

如果 User.foo 要求使用 Engine session ?例如,我在数据库中有一个函数,需要用户身份,我想在 foo 中调用该函数。要这样做,我需要使用 Engine.execut session.execute ;但 Engine s > Say 尚未创建。

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
Base = declarative_base()
class User(Base):
    __tablename__ =  users 

    id = Column(Integer, primary_key=True)
    name = Column(String)
    fullname = Column(String)
    password = Column(String)

    def __init__(self, name, fullname, password):
        self.name = name
        self.fullname = fullname
        self.password = password

    def foo(self, bar):
        """I need an Engine or Session!"""
        pass #....

    def __repr__(self):
       return "<User( %s , %s ,  %s )>" % (self.name, self.fullname, self.password)
最佳回答

使用 < a href="http://docs.sqlalchemy.org/en/rel_0_7/orm/session.html#sqlalchemy.orm.session.session.session.object_session" rel="nofollow"\code >object_session session 类方法:

def foo(self, bar):
    session = Session.object_session(self)
    #....
问题回答

您需要创建应用程序级别的 API, 以便每当有人调用该方法时检索数据库 。

使用 集体. dead 将 SQLAlchemy 和 Zope 整合起来时, 例如,数据库被注册为Zope 构件架构, 作为一种工具, 所以每当我需要会话时, 我都会使用获取功能查询 :

db = getUtility(IDatabase, name=u responsecentre )
session = db.session                        

在此情况下, ZCA getUplity 是用于查找数据库连接的应用程序专用 API, 其会话被串线绑定 。





相关问题
Can Django models use MySQL functions?

Is there a way to force Django models to pass a field to a MySQL function every time the model data is read or loaded? To clarify what I mean in SQL, I want the Django model to produce something like ...

An enterprise scheduler for python (like quartz)

I am looking for an enterprise tasks scheduler for python, like quartz is for Java. Requirements: Persistent: if the process restarts or the machine restarts, then all the jobs must stay there and ...

How to remove unique, then duplicate dictionaries in a list?

Given the following list that contains some duplicate and some unique dictionaries, what is the best method to remove unique dictionaries first, then reduce the duplicate dictionaries to single ...

What is suggested seed value to use with random.seed()?

Simple enough question: I m using python random module to generate random integers. I want to know what is the suggested value to use with the random.seed() function? Currently I am letting this ...

How can I make the PyDev editor selectively ignore errors?

I m using PyDev under Eclipse to write some Jython code. I ve got numerous instances where I need to do something like this: import com.work.project.component.client.Interface.ISubInterface as ...

How do I profile `paster serve` s startup time?

Python s paster serve app.ini is taking longer than I would like to be ready for the first request. I know how to profile requests with middleware, but how do I profile the initialization time? I ...

Pragmatically adding give-aways/freebies to an online store

Our business currently has an online store and recently we ve been offering free specials to our customers. Right now, we simply display the special and give the buyer a notice stating we will add the ...

Converting Dictionary to List? [duplicate]

I m trying to convert a Python dictionary into a Python list, in order to perform some calculations. #My dictionary dict = {} dict[ Capital ]="London" dict[ Food ]="Fish&Chips" dict[ 2012 ]="...