在Pyramid框架中使用SQLAlchemy的原生MySQL
我最近决定在我的项目中开始使用Pyramid(一个Python的网页框架)。
我还决定使用SQLalchemy,并且想用原生的MySQL(出于个人原因),但仍然希望保留ORM的功能。
在models.py文件中的第一部分代码是:
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()
那么接下来我该如何用原生MySQL执行创建表的查询呢?
传统的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
在 views.py
文件里,如果你要添加表单元素,首先需要创建一个数据库的对象。
在你的代码片段中,可以这样做:
pg = Page()
然后用下面的方式添加它:
DBSession.add(pg)
对于你想添加的所有表单元素,比如名字和数据,都是这样做的。
最后的代码看起来会像这样:
pg = Page()
name = request.params['name']
data = request.params['data']
DBSession.add(pg)
3
我个人的建议是使用 http://pypi.python.org/pypi/khufu_sqlalchemy 来设置 sqlalchemy 引擎。
然后在一个 pyramid 视图中,你可以这样做:
from khufu_sqlalchemy import dbsession
db = dbsession(request)
db.execute("select * from table where id=:id", {'id':7})
4
DBSession.execute('CREATE TABLE ....')
可以看看 sqlalchemy.text()
这个东西,它可以用来写带参数的查询。