2

我最近决定从现在开始在我的项目中使用 Pyramid(python web 框架)。

我还决定使用 SQLalchemy,我想使用原始 MySQL(个人原因)但仍保留 ORM 功能。

models.py 中代码的第一部分内容如下:

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()

现在从这里我如何使用原始 MySQL 执行对 CREATE TABLE 的查询。

传统的 SQLalchemy 方法是:

class Page(Base):
  __tablename__ = 'pages'
  id = Column(Integer, primary_key=True)
  name = Column(Text, unique=True)
  data = Column(Text)

def __init__(self, name, data):
    self.name = name
    self.data = data
4

3 回答 3

4
DBSession.execute('CREATE TABLE ....')

查看sqlalchemy.text()参数化查询。

于 2011-02-19T09:28:00.600 回答
3

我自己有偏见的建议是使用http://pypi.python.org/pypi/khufu_sqlalchemy来设置 sqlalchemy 引擎。

然后在金字塔视图中,您可以执行以下操作:

from khufu_sqlalchemy import dbsession
db = dbsession(request)
db.execute("select * from table where id=:id", {'id':7})
于 2011-03-06T17:26:25.760 回答
0

如果要在views.py其中添加表单元素,请首先创建数据库对象。

在您的代码段中,将其作为

pg = Page() 

并添加它

DBSession.add(pg) 

对于您要添加的所有表单元素,例如代码段中的名称和数据。

最终代码将类似于:

    pg = Page()
    name = request.params['name']
    data = request.params['data']
    DBSession.add(pg)
于 2014-08-15T13:46:14.473 回答