いいところを紹介してくださいPython ORMですか?[定休日]

StackOverflow https://stackoverflow.com/questions/53428

  •  09-06-2019
  •  | 
  •  

質問

私は評価および見をCherryPyのためのプロジェクトは基本的にはJavaScriptフロントからクライアント側(ブラウザ)との会談にPythonのwebサービスを終了です。そこで、本当に必要なもの高速で軽量の末にできたらいいのに実施Pythonによるその後のさまざまな魅力を集めPostgreSQL DBを介ORM(JSONのブラウザ)

私も見Djangoるように、そのORMを内蔵しています。しかし私はDjangoがよい(以ズっぽい大人な雰囲気==遅?).

誰でも経験が異なるPython ORMソリューションの対比の特徴と機能、速度で、効率ようにはどうすればよいのですか。

役に立ちましたか?

解決

SQLAlchemyがフルで力強(使用のDataMapperパターン).Django ORMは、清浄機の構文や書(ActiveRecordのパターン).知らないます。

SQLAlchemyも コ層 ることを隠も複雑でActiveRecord-スタイルの構文りのDjangoのORM.

か心配Djangoている"。" で互いに分離を十分利用できるのORMしたい場合な輸入についてご覧いただけます。

とはいえ、また利用CherryPyのウェブ層で必要とORMっしょトSQLAlchemy.

他のヒント

また軽量化、既に馴染みのベイコモデルは、チェックアウトpeewee:https://github.com/coleifer/peewee

例:

import datetime
from peewee import *

class Blog(Model):
    name = CharField()

class Entry(Model):
    blog = ForeignKeyField(Blog)
    title = CharField()
    body = TextField()
    pub_date = DateTimeField(default=datetime.datetime.now)

# query it like django
Entry.filter(blog__name='Some great blog')

# or programmatically for finer-grained control
Entry.select().join(Blog).where(Blog.name == 'Some awesome blog')

チェックを docs 詳します。

は世の中の単純なAPI:

  from storm.locals import *

  class Foo:
      __storm_table__ = 'foos'
      id = Int(primary=True)


  class Thing:
      __storm_table__ = 'things'
      id = Int(primary=True)
      name = Unicode()
      description = Unicode()
      foo_id = Int()
      foo = Reference(foo_id, Foo.id)

  db = create_database('sqlite:')
  store = Store(db)

  foo = Foo()
  store.add(foo)
  thing = Thing()
  thing.foo = foo
  store.add(thing)
  store.commit()

とで痛みが落ち込む原SQL時に必要なもの:

store.execute('UPDATE bars SET bar_name=? WHERE bar_id like ?', []) 
store.commit()

普段の使用 SQLAlchemy.か迫力とは、おそらく最も成熟したpython ORM.

一歩間違えれば利用CherryPyするも 規則に従 しているので、ロバート-蔵の男の現在のCherryPyプロジェクトリーダー)でした。個人的な使用でもいい人もいることがあるので急いでいます。

SQLObject 少より使いやすいORMよSQLAlchemyなっています。

個人的にはないのDjangoのORM場合を除いて計画書を書くプロジェクト全体にDjangoがでしょう。

SQLAlchemyの 宣言型 延長は標準的には0.5のキャッシュフローのすべて二つの指定されたインタフェースのようにDjangoや"するしかありません。でもシームレスに統合し"クラス/テーブルを使って設定され、datamapperスタイル:

Base = declarative_base()

class Foo(Base):
    __tablename__ = 'foos'
    id = Column(Integer, primary_key=True)

class Thing(Base):
    __tablename__ = 'things'

    id = Column(Integer, primary_key=True)
    name = Column(Unicode)
    description = Column(Unicode)
    foo_id = Column(Integer, ForeignKey('foos.id'))
    foo = relation(Foo)

engine = create_engine('sqlite://')

Base.metadata.create_all(engine)  # issues DDL to create tables

session = sessionmaker(bind=engine)()

foo = Foo()
session.add(foo)
thing = Thing(name='thing1', description='some thing')
thing.foo = foo  # also adds Thing to session
session.commit()

を使用していま エリクシール とSQLAlchemyて気に入ってくれている。エリクシール面のSQLAlchemyで見てどのようになりますでしょう"ActiveRecordのパターン"カウンターパーツ。

といっていいのかもしれないし、標準的な基準点のための高レベルのデータベースの相互作用のPython:http://wiki.python.org/moin/HigherLevelDatabaseProgramming

あらしのようにな 規則に従 具マルタンファウラーのDataMapperパターンかなり抽象的。

と思いますようになってい:

が考えられるように、未使用の特徴Djangoえる。うーばれるものを決める高級のプロジェクト.

SQLAlchemyは非常に迫力があります。しかしなスレッドに対して安全だと思がcherrypyにスレッドプールのモードになります。

使用したStorm+SQLiteのための小さなプロジェクトでしたか満足でしたマルチプロセ.を利用することにしたのだろうから、データベースに複数のプロセスの結果、データベース"ロック"。私に切り替えSQLAlchemy、同じコードと共に特に問題ございません。

思チェック SQLAlchemy

で使いやすいモデルのお仕事とはなに悪いです。 Django用SQLAlchemyでORM が使用することそのものではありませんでおります。

こちらは小さな例を選択orm物

>>> ed_user = User('ed', 'Ed Jones', 'edspassword')
>>> session.add(ed_user)
>>> our_user = session.query(User).filter_by(name='ed').first() 
>>> our_user
    <User('ed','Ed Jones', 'edspassword')>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top