2015-07-23 17 views
5

Bir proje için sqlalchemy kullanıyorum. Ancak, Django'nun ORM'sine daha alışık oluyorum.SQLAlchemy Model Django Gibi Kaydet Yöntem?

Düşey eksende ORM'de, bir 'taahhüt'/'kaydetme' üzerine otomatik olarak eylemleri uygulamak için aşırı hız uygulayabileceğim 'save() yöntemine benzer bir şey olup olmadığını bilmek isterim.

cevap

0

Muhtemelen, ORM events'u arıyorsunuz.

instance events ve session events'a bakın. Gerektiğinde

# SQLAlchemy db_session setup omitted 
... 

Model = declarative_base(name='Model') 
Model.query = db_session.query_property() 

class CRUD(): 

    def save(self): 
     if self.id == None: 
      db_session.add(self) 
     return db_session.commit() 

     def destroy(self): 
      db_session.delete(self) 
      return db_session.commit() 

class User(Model, CRUD): 
    __tablename__ = 'users' 
    id = db.Column(db.integer, primary_key=True) 
    email = db.Column(db.String(120), unique=True) 

    def __init__(self, email): 
     self.email = email 

Ardından kaydedebilir veya modelini yok edebilir:

3

Sen Django ORM/ActiveRecord benzer bir şey başarmak için bazı basit rezil yöntemlerle modellerinizi uzatabilirsiniz

user = User('[email protected]') 
user.save()