原始MySQL与SQLAlchemy使用Pyramid框架

时间:2011-02-18 21:09:15

标签: python sqlalchemy pyramid

我最近决定从现在开始为我的项目使用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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分: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})

答案 2 :(得分:0)

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

在您的代码段中,按

进行操作
pg = Page() 

并添加

DBSession.add(pg) 

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

最终代码类似于:

    pg = Page()
    name = request.params['name']
    data = request.params['data']
    DBSession.add(pg)