اذهب إلى المحتوى
  • 0

ربط قاعدة البيانات MongoDB مع مشروع django

Ecommerce Vente

السؤال

Recommended Posts

  • 0

هناك ثلاث طرق لربط Django بـ MongoDB:

  • PyMongo: PyMongo هو المحرك القياسي الذي يمكن لـ MongoDB من خلاله التفاعل مع Django. إنها الطريقة الرسمية والمفضلة لاستخدام MongoDB مع Python. يوفر PyMongo وظائف لأداء جميع إجراءات قاعدة البيانات مثل البحث والحذف والتحديث والإدراج. نظرًا لأن PyMongo متاح مع PyPI ، يمكنك تثبيته بسرعة باستخدام أمر pip.
  • MongoEngine: MongoEngine هو مصمم خرائط كائن Python. إنه مشابه لـ Object-Relational-Mapper في قواعد البيانات العلائقية. يحتوي MongoEngine على واجهة برمجة تطبيقات تعريفية يسهل تعلمها واستخدامها.
  • Djongo: إذا كنت تستخدم قاعدة بيانات علائقية مثل SQL وتريد الترحيل إلى MongoDB ، لذلك يمكنك استخدام Djongo. بدون تغيير Django ORM ، يحول Djongo جميع استعلامات SQL إلى استعلامات بناء جملة MongoDB.

ربط Django و MongoDB باستخدام PyMongo

قم بتثبيت PyMongo بسهولة باستخدام الأمر pip / pip3:

pip install pymongo[snappy,gssapi,srv,tls]

أيضًا ، قم بتثبيت dnspython لاستخدام mongodb + srv: // URIs بالأمر:

pip install dnspython

باستخدام PyMongo ، يمكننا تشغيل قواعد بيانات متعددة بشكل متزامن عن طريق تحديد اسم قاعدة البيانات الصحيح لطبعة الاتصال.

يمكننا إنشاء عميل في ملف utils يمكن استخدامه من قبل أي عرض يريد التفاعل مع MongoDB. قم بإنشاء ملف utils.py في مجلد المشروع الخاص بك (نفس موقع manager.py) وقم بإنشاء مثيل للعميل:

from pymongo import MongoClient
def get_db_handle(db_name, host, port, username, password):

 client = MongoClient(host=host,
                      port=int(port),
                      username=username,
                      password=password
                     )
 db_handle = client['db_name']
 return db_handle, client

يمكن بعد ذلك استخدام هذه الطريقة في ./myfirstapp/view.py.

طريقة أخرى للحصول على الاتصال هي استخدام connection_string:

from pymongo import MongoClient
client = pymongo.MongoClient('connection_string')
db = client['db_name']

2 - توصيل Django و MongoDB باستخدام Djongo

يعد Djongo تحسينًا على PyMongo حيث لا يحتاج المطورون إلى كتابة استفسارات مطولة. يقوم بتعيين كائنات Python إلى مستندات MongoDB ، أي تعيين مستند الكائن (ODM). يضمن Djongo أن البيانات النظيفة فقط هي التي تدخل قاعدة البيانات. من خلال إجراء فحوصات السلامة ، وتطبيق عمليات التحقق ، وما إلى ذلك مع Djongo ، ليست هناك حاجة لتعديل Django ORM الحالي.

تثبيت Djongo:

pip install djongo

الآن ، انتقل إلى مجلد المشروع الخاص بك (على سبيل المثال ، MyFirstDjangoProj) ، وافتح ملف settings.py. يمكنك تحريره على Textpad أو Python IDE أو أي محرر. ابحث عن قواعد البيانات ، وقم بتغيير الإعدادات للإشارة إلى MongoDB. سيكون ENGINE هو djongo وسيكون اسم قاعدة البيانات (NAME) هو اسم قاعدة بيانات MongoDB.

DATABASES = {
       'default': {
           'ENGINE': 'djongo',
           'NAME': 'db-name',
       }
   }

إذا لم تكن قاعدة البيانات الخاصة بك على المضيف المحلي أو كانت مؤمنة ، فيجب عليك أيضًا ملء معلومات العميل مثل HOST و USERNAME و PASSWORD وما إلى ذلك.

DATABASES = {
        'default': {
            'ENGINE': 'djongo',
            'NAME': 'your-db-name',
            'ENFORCE_SCHEMA': False,
            'CLIENT': {
                'host': 'mongodb+srv://<username>:<password>@<atlas cluster>/<myFirstDatabase>?retryWrites=true&w=majority'
            }  
        }
}

تأكد من إضافة اسم التطبيق في إعداد INSTALLED_APPS settings.py:

INSTALLED_APPS = [
    'myfirstapp',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

ثم قم بترحيل قواعد البيانات 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...