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