2

私は最近、自分のプロジェクトに 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
4

3 に答える 3

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

sqlalchemy.text()パラメータ化されたクエリについては、をご覧ください。

于 2011-02-19T09:28:00.600 に答える
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})
于 2011-03-06T17:26:25.760 に答える
0

フォーム要素を追加するviews.py場合は、最初にデータベースのオブジェクトを作成します。

スニペットで、次のようにします

pg = Page() 

そしてそれを追加します

DBSession.add(pg) 

スニペットの名前やデータなど、追加したいすべてのフォーム要素。

最終的なコードは次のようになります。

    pg = Page()
    name = request.params['name']
    data = request.params['data']
    DBSession.add(pg)
于 2014-08-15T13:46:14.473 に答える