使用 Pyramid 框架的原始 MySQL 和 SQLAlchemy

发布于 2024-10-18 06:22:31 字数 594 浏览 5 评论 0原文

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

I have recently made a decision to start using the Pyramid (python web framework) for my projects from now on.

I have also decided to use SQLalchemy, and I want to use raw MySQL (personal reasons) but still keep the ORM features.

The first part of the code in models.py reads:

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

Now from here how do I exectue a query for CREATE TABLE using raw MySQL.

the traditional SQLalchemy way would be:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

要走就滚别墨迹 2024-10-25 06:22:31
DBSession.execute('CREATE TABLE ....')

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

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

Have a look at sqlalchemy.text() for parametrized queries.

故事未完 2024-10-25 06:22:31

我自己的偏见建议是使用 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})

My own biased suggestion would be to use http://pypi.python.org/pypi/khufu_sqlalchemy to setup the sqlalchemy engine.

Then inside a pyramid view you can do something like:

from khufu_sqlalchemy import dbsession
db = dbsession(request)
db.execute("select * from table where id=:id", {'id':7})
寂寞笑我太脆弱 2024-10-25 06:22:31

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

执行操作

pg = Page() 

并添加它

DBSession.add(pg) 

在您的代码片段中,为您想要添加的所有表单元素(例如代码片段中的名称和数据)

。最终代码类似于:

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

Inside the views.py if you are adding form elements, first create an object of the database.

In your snippet, do it as

pg = Page() 

and add it with

DBSession.add(pg) 

for all the form elements you want to add e.g name and data from your snippet.

the final code would be similar to:

    pg = Page()
    name = request.params['name']
    data = request.params['data']
    DBSession.add(pg)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文