Python 原始MySQL和使用金字塔框架的SQLAlchemy
我最近决定从现在开始在我的项目中使用Pyramid(PythonWeb框架) 我还决定使用SQLalchemy,我想使用原始MySQL(个人原因),但仍然保留ORM特性 models.py中的第一部分代码如下:Python 原始MySQL和使用金字塔框架的SQLAlchemy,python,sqlalchemy,pyramid,Python,Sqlalchemy,Pyramid,我最近决定从现在开始在我的项目中使用Pyramid(PythonWeb框架) 我还决定使用SQLalchemy,我想使用原始MySQL(个人原因),但仍然保留ORM特性 models.py中的第一部分代码如下: DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension())) Base = declarative_base() 现在,我如何使用原始MySQL执行CREATETABLE查询 传统的炼金术方
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()
现在,我如何使用原始MySQL执行CREATETABLE查询
传统的炼金术方法是:
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
请查看
sqlalchemy.text()
,了解参数化查询。我个人的建议是使用设置sqlalchemy引擎
然后在金字塔视图中,您可以执行以下操作:
from khufu_sqlalchemy import dbsession
db = dbsession(request)
db.execute("select * from table where id=:id", {'id':7})
在
views.py
中,如果要添加表单元素,请首先创建数据库的对象
在您的代码片段中,按照
pg = Page()
加上
DBSession.add(pg)
对于要添加的所有表单元素,例如代码段中的名称和数据
最终代码类似于:
pg = Page()
name = request.params['name']
data = request.params['data']
DBSession.add(pg)
谢谢你的回复,马可。我尝试了以下操作:
DBSession.execute(““CREATE TABLE…..”
并收到以下错误:UnboundExecutionError:找不到SQL表达式或此会话上配置的绑定,您必须调用DBSession.configure(bind=get_engine(…)或类似的东西,但我还没有进入金字塔,也不知道它是如何建立的。我通常在纯sql中创建模式,然后在连接上调用reflect()。。。
pg = Page()
name = request.params['name']
data = request.params['data']
DBSession.add(pg)