micromongo

البرمجيات قطة:
micromongo
تفاصيل البرنامج:
الإصدار: 0.1.4
تاريخ إيداع: 14 Apr 15
المطور: Jason Moiron
ترخيص: حرر
شعبية: 2

Rating: nan/5 (Total Votes: 0)

وmicromongo هي طبقة صغيرة حول pymongo التي تسمح لك لإنشاء فئات بسيطة على غرار ORM التي يمكن إجراء التحقق من الصحة، تسمح بالوصول إلى نقطة الوثائق والنتائج queryset لصناعة السيارات في التفاف، وتعطيك قبل / بعد حفظ السنانير.
انها مصممة مع microframeworks في الاعتبار، ولكن هو تطبيق وإطار الملحد. ومن المفترض أن تبسيط استخدام pymongo وتوفير الأدوات اللازمة للالتعابير المشتركة، وليس لطمس pymongo أو مونغو دي بي من هياكل البيانات الخاصة بك.
انكم مدعوون الى فتح قضايا أو إرسال طلبات سحب على جيثب micromongo ل
micromongo يجعل بعض القرارات تصميم باسم تبسيط التي قد لا عمل لك:
على & nbsp؛ - & نبسب؛ تحتفظ micromongo اتصال عالمي واحد، لذلك لا يمكن أن يكون النماذج التي اتصال بالخوادم مونغو دي بي متعددة
على & nbsp؛ - & نبسب؛ هناك هاندفول أسماء نموذج وأسماء السمة ثيقة التي لن تعمل مع نماذج micromongo. وسيتم تغطية هذه في المستندات الكاملة
على & nbsp؛ - & نبسب؛ هل يمكن أن يكون إلا نموذج واحد لكل مجموعة
ابدء
لتبدأ مع micromongo، فقط استيراده:
>>> من micromongo استيراد الاتصال، موديل
>>> ج = ربط ()
ربط يأخذ نفس الحجج كما كائن اتصال pymongo، كما يتصرف بشكل مطابق تقريبا، إلا أنه يحاول العودة نتائج الاستعلام ملفوفة في الطبقات نموذج المناسبة تلقائيا. سوف يكون مؤقتا كائن الاتصال التي تقوم بإنشائها من خلال هذه الدعوة وتستخدم من قبل مختلف المرافق على غرار مكتب إدارة السجلات، مثل Model.save ()، Model.proxy، وما إذا كنت تريد كائن اتصال نظيفة، ومعيار، يمكنك الحصول على واحد بسهولة :
>>> من micromongo clean_connection استيراد
>>> نظيفة = clean_connection ()
لاحظ أن clean_connection لا يأخذ الحجج وسيعود دائما فئة اتصال نظيفة مع نفس الإعدادات كاتصال micromongo الحالي.
مع هذه الكائنات الصدد، يمكنك إنشاء قواعد البيانات أو تفعل ما تفعل مع الأجسام pymongo العادية:
>>> ديسيبل = c.test_db
>>> جمع = db.test_collection
>>> collection.save ({"docid": 1، "تفشل": الكاذبة})
>>> collection.find_one ()
{u'_id ': ObjectId (' ... ')، u'fail': خطأ، u'docid ': 1}
يمكنك أيضا إعلان نموذج الخاص بك لمجموعة معينة في الاسلوب التعريفي:
>>> TestModel فئة (النموذجي):
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ جمع = 'test_db.test_collection "
>>> collection.find_one ()

هذه الفئات لديها عدد من المزايا الإضافية على القاموس الذي يمكن جعلها أكثر ملاءمة للاستخدام. مفاتيح ثيقة كلها يمكن الوصول إليها كما سمات:
>>> ر = collection.find_one ()
>>> t.fail
زائف
>>> t.docid
1
كما استمرت الوثائق بسهولة إلى قاعدة البيانات:
>>> t.docid = 17
>>> t.save ()
>>> clean.test_db.test_collection.find_one ()
{u'_id ': ObjectId (' ... ')، u'fail': خطأ، u'docid ': 17}
تحديد النماذج
أعلاه، تم تعيين السمة مجموعة إلى نموذج فو لدينا. كان هذا الاختصار، على الرغم؛ إذا تم تعيين قاعدة البيانات وجمع كل على حدة، يمكن للنموذج معرفة اسم جمع كامل. إذا جمع وقاعدة بيانات ليست موجودة، micromongo محاولات لأنها من أصل الرقم على أساس الطبقة وحدة اسم النموذج الخاص بك. على سبيل المثال، سوف تصبح blog.Post blog.post، أو سوف stream.StreamEntry تصبح stream.stream_entry. صراحة أفضل من ضمنيا، وانها شجعتها التي تقوم بتعيينها جمع يدويا.
وإلى جانب التعبئة والتفريغ النتائج من قاعدة البيانات، ويمكن أيضا تحديد النماذج وثيقة المواصفات التي يمكن أن تحدد التخلف وإجراء التحقق من الصحة قبل حفظ النموذج. اتخاذ تافهة نموذج بلوق وظيفة:
>>> من استيراد micromongo.spec *
>>> الطبقة المشاركة (النموذجي):
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ جمع = 'test_db.blog_posts "
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ المواصفات = ديكت (
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ المؤلف = حقل (مطلوب = صحيح، والتقصير = 'jmoiron "، اكتب = basestring)،
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ عنوان = حقل (مطلوب = الكاذبة، والتقصير = ''، اكتب = basestring)،
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ نشرت = حقل (مطلوب = صحيح، والتقصير = الكاذبة، اكتب = [صحيح، خطأ])،
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ الجسم = حقل (نوع = يونيكود)،
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ الطابع الزمني = حقل ()،
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ )
>>> ع = Post.new ()
>>> ص
<رد: {'لقب': ش ''، 'مؤلف': u'jmoiron '،' نشرت ': الكاذبة}>
وهناك عدد قليل من الأشياء تسير على هنا. يتم تهيئة الحقول التي لديها الافتراضية إلى أن التقصير سواء كانت مطلوبة أم لا. إذا لم يكن لديك حقل مطلوب افتراضي، هو تهيئة إلى لا شيء.
يمكن الحقول يستغرق وسيطة نوع، التي يمكن أن تكون إما للاستدعاء التي تأخذ قيمة وإرجاع صحيح أو خطأ، واحد أو أكثر من أنواع قاعدة، أو واحد أو أكثر القيم. إذا تم توفير أنواع واحد أو أكثر، يتم استخدام isinstance لاختبار أن القيم هي النوع الصحيح. إذا تم توفير قيمة واحدة أو أكثر، يتصرف الميدان كنوع التعداد، والتحقق من أن القيم هي في مجموعتها من القيم. إذا لا يتم منح أي نوع، والمصادقة يمر دائما على حقل ما لم هو مطلوب منها وغائبة.
إذا أعطيت حقل في ص نوع غير صالح، ثم يتم رفع ValueError:
>>> p.title = 10
>>> p.save ()
Traceback (معظم المكالمات الأخيرة الأخيرة):
على & nbsp؛ ...
ValueError: لم مفاتيح لا تتطابق المواصفات: ['عنوان']
>>> ديل p.author
>>> p.save ()
Traceback (معظم المكالمات الأخيرة الأخيرة):
على & nbsp؛ ...
ValueError: حقول المفقودون: ['مؤلف']، وحقول غير صحيحة: ['عنوان']
>>> p.title = 'الأولى blogpost بلدي "
>>> p.author = 'jmoiron "
>>> p.published = صحيح
>>> p.body = ش "هذه هي المرة الأولى التي بلوق وظيفة .. على & nbsp؛ أنا متحمس جدا!"
>>> p.save ()
Model.find
للراحة وجاف، Model.find هو classmethod التي سوف تستخدم المؤشر micromongo لإصدار تجد ضد الحق في جمع. يتصرف بهذه الطريقة بالضبط نفس Collection.find pymongo ل.
تعديل طفيف الطبقة المؤشر micromongo أيضا يجعل طريقة order_by مستوحاة جانغو متاحة لجميع المؤشرات (إيجاد وأي شيء سلسلة حالا إذا تقوم بإرجاع المؤشر). يمكنك تمرير واحد أو أكثر من أسماء الحقول، مع الرائدة اختياري '-'، لفرز الأشياء تصاعدي أو تنازلي.
هذه التغييرات تتيح لك استخدام معظم قوة pymongo دون الحاجة لاستيراده، ويتيح لك تجنب تكرار لا داعي لها من موقع البيانات الخاصة بك.
subclassing الحقل
ويتم تشجيع لك لإنشاء حقول الخاصة بك أن تفعل ما تريد. فرعية ميدانية لها وظيفة هوك pre_validate التي تأخذ قيمة واردة ويمكن تحويله الا انهم يريدون. لاحظ أن هذا سوف تعمل فقط في حالة وجود في الواقع المجالات. لذلك للحصول على شيء مثل auto_now_add على DateTimeField، هل تريد أن تجعل من المطلوب ويكون لها pre_validate تتحول لا يوجد في datetime.datetime.now ()

المتطلبات:.

بيثون

برامج مماثلة

LiquiBase
LiquiBase

17 Jul 15

Groovy
Groovy

28 Sep 15

Alembic
Alembic

20 Feb 15

Qore asn1 Module
Qore asn1 Module

20 Feb 15

البرامج الأخرى من المطور Jason Moiron

redtape
redtape

14 Apr 15

pdf2zip
pdf2zip

11 May 15

speedparser
speedparser

14 Apr 15

تعليقات ل micromongo

لم يتم العثور على التعليقات
إضافة تعليق
بدوره على الصور!