दिलचस्प पोस्ट
डॉलर ($) में प्रवेश पासवर्ड स्ट्रिंग चर के रूप में माना जाता है जावास्क्रिप्ट से PHP पर JSON डेटा भेजें? IsMobileDevice कैसे काम करता है? हिट-परीक्षण एसवीजी आकार? SHA1 टकराव की संभावना ग्रहण: जेवीएम समाप्त कोड से बाहर निकलें = 2 एंड्रॉइड: टेक्स्टव्यू: ऊपर और नीचे पर रिक्ति और पैडिंग निकालें पायथन में फ़ाइल के अंत में फ़ंक्शन घोषित करें AngularJS: फैक्टरी $ http.get JSON फ़ाइल सीरियल पोर्ट पोर्ट ऑब्जेक्ट सी # में डेटा कैसे प्राप्त किया जाता है? जावा नॉन-स्टैटिक फ़ील्ड के लिए एक स्थिर संदर्भ नहीं बना सकता अनक्यूट टाइप एरर: Object.values ​​फ़ंक्शन जावास्क्रिप्ट नहीं है एकाधिक क्षेत्रों को कवर करने के लिए सबसे बड़े आकार के आयत का पता लगाएं क्या मुझे निर्माता या बाहरी कंस्ट्रक्टर के भीतर चर को आरम्भ करने चाहिए NSUserDefaults में एक NSDate भंडारण का इष्टतम तरीका क्या है?

कुछ अच्छा पायथन ओआरएम समाधान क्या हैं?

मैं मूल्यांकन कर रहा हूँ और एक परियोजना के लिए CherryPy का उपयोग कर देख रहा हूं जो मूल रूप से क्लाइंट-साइड (ब्राउज़र) से एक जावास्क्रिप्ट फ़्रंट-एंड होता है जो बैक-एंड पर पायथन वेब सेवा से बात करता है। इसलिए, मुझे बैक-एंड पर तेजी से और हल्का कुछ चाहिए जो कि मैं पायथन का उपयोग कर कार्यान्वित कर सकता हूं जो कि एक ORM (ब्राउज़र में JSON) के माध्यम से पोस्टग्रेएसक्यूएल डीबी के साथ बोलता है।

मैं भी Django को देख रहा हूं, जो मुझे पसंद है, क्योंकि उसके ORM का निर्माण होता है। हालांकि, मुझे लगता है कि डीजेंगो मुझे वास्तव में ज़रूरत से थोड़ा अधिक हो सकता है (यानी अधिक विशेषताओं की तुलना में मुझे वास्तव में == धीमी है?)।

किसी भी व्यक्ति को विभिन्न पायथन ओआरएम समाधानों के साथ कोई अनुभव है जो उनकी विशेषताओं, कार्यक्षमता, गति, दक्षता आदि की तुलना कर सकते हैं।

Solutions Collecting From Web of "कुछ अच्छा पायथन ओआरएम समाधान क्या हैं?"

एसक्यूएललेमी अधिक पूर्ण विशेषताओं और शक्तिशाली (डेटामापर पैटर्न का उपयोग करती है) Django ORM में एक क्लीनर वाक्यविन्यास है और (ActiveRecord पैटर्न) के लिए लिखना आसान है। मैं प्रदर्शन अंतर के बारे में नहीं जानता

एसक्यूएललेमी में एक घोषणात्मक परत भी है जो कुछ जटिलता को छुपाता है और यह एक ActiveRecord-style syntax को Django ORM के समान और अधिक देता है।

मुझे डेंगू के बारे में चिंता नहीं होगी "बहुत भारी" यह पर्याप्त रूप से decoupled है कि यदि आप आराम से आयात किए बिना आप ORM का उपयोग कर सकते हैं

उसने कहा, अगर मैं वेब परत के लिए पहले से ही चेरीपी का प्रयोग कर रहा था और सिर्फ एक ओआरएम की ज़रूरत है, तो मैं शायद एसक्यूएललेमी के लिए विकल्प चुनता हूं।

यदि आप लाइटवेट की तलाश कर रहे हैं और पहले से ही डीजेंगो-शैली घोषणात्मक मॉडल से परिचित हैं, तो पेविए की जांच करें: 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') 

अधिक उदाहरणों के लिए दस्तावेज़ देखें

तूफान में सबसे आसान एपीआई है:

  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() 

और जब भी आपको इसकी आवश्यकता होती है, तो यह कच्चा एसक्यूएल में ड्रॉप करने के लिए बिना दर्द रहित बनाता है:

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

मैं आमतौर पर एसक्यूएललेमी का उपयोग करता हूँ यह बहुत शक्तिशाली है और शायद सबसे परिपक्व अजगर ओआरएम है।

अगर आप चेरीपी का उपयोग करने की योजना बना रहे हैं, तो आप डेजाव में भी देख सकते हैं क्योंकि यह रॉबर्ट ब्रूवर (वह आदमी जो मौजूदा चेरीपीई प्रोजेक्ट लीडर है) है। मैं व्यक्तिगत रूप से इसका इस्तेमाल नहीं किया है, लेकिन मुझे कुछ लोगों को पता है जो इसे पसंद करते हैं।

SQLObject SQLAlchemy की तुलना में ORM का उपयोग करना थोड़ा आसान है, लेकिन यह काफी शक्तिशाली नहीं है।

व्यक्तिगत रूप से, मैं Django ORM का उपयोग नहीं करता जब तक मैं Django में पूरी परियोजना लिखने की योजना नहीं कर रहा था, लेकिन यह सिर्फ मुझे है

एसक्यूएललेमी के घोषणापत्रिक विस्तार, जो 0.5 में मानक बनता जा रहा है, Django या Storm की तरह बहुत सारे एक इंटरफ़ेस प्रदान करता है। यह डेटामैपर शैली का उपयोग कर कॉन्फ़िगर किए गए कक्षाओं / तालिकाओं के साथ मूल रूप से एकीकृत करता है:

 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() 

हम एसक्यूएललेमी के साथ अमिक्सीर का उपयोग करते हैं और इसे अब तक पसंद आया है। इलिक्सीर एसक्यूएललेमी के शीर्ष पर एक परत रखता है जो इसे "सक्रियरेकॉर्ड पैटर्न" काउंटर भागों की तरह दिखता है।

यह पायथन में उच्चस्तरीय डेटाबेस इंटरैक्शन के लिए विहित संदर्भ बिंदु है: http://wiki.python.org/moin/HigherLevelDatabaseProgramming

वहां से, ऐसा लगता है कि डीजाव पायथन में काफी स्पष्ट रूप से मार्टिन फोवेलर के डेटामैपर पैटर्न को लागू करता है।

मुझे लगता है आप देख सकते हैं:

पतझड़

आंधी

कोई कन्नीनीय तरीका नहीं है कि Django में अप्रयुक्त फीचर एक प्रदर्शन दंड देगा क्या आप कभी भी इस परियोजना को अपस्केल करने का निर्णय लेते हैं, बस काम में आ सकता है?

एसक्यूएललेमी बहुत, बहुत शक्तिशाली है हालांकि यह धागा सुरक्षित नहीं है यह सुनिश्चित करें कि आप उस चीज़ को ध्यान में रखें जब कि थ्रेड-पूल मोड में चेरीपी के साथ काम करें।

मैंने स्टॉर्म + SQLite को एक छोटी सी परियोजना के लिए इस्तेमाल किया था, और जब तक मैं बहुप्रोसेसिंग जोड़ा नहीं था तब तक इसके साथ बहुत खुश था। कई प्रक्रियाओं से डेटाबेस का उपयोग करने की कोशिश में एक "डेटाबेस बंद है" अपवाद के परिणामस्वरूप मैं SQLAlchemy के लिए स्विच, और एक ही कोड कोई समस्या नहीं के साथ काम किया

मैं एसक्यूएललेमी से जांच करूँगा

यह वास्तव में उपयोग करना आसान है और जिन मॉडलों के साथ आप काम करते हैं वे बिल्कुल भी खराब नहीं होते हैं। जेेंजो ने ओआरएम के लिए एसक्यूएलएलएमी का उपयोग किया है, लेकिन इसे स्वयं उपयोग करके आप इसकी पूर्ण शक्ति का उपयोग कर सकते हैं।

ऑरमिक्स बनाने और चुनने के लिए यहां एक छोटा सा उदाहरण है

 >>> 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')>