يعد ربط Flask بقواعد بيانات SQL مثل PostgreSQL و SQLite أمرًا سهلاً. لكن إطار العمل يتزامن تمامًا مع قواعد بيانات NoSQL مثل CouchDB أيضًا. وكميزة إضافية ، يمكنك الاستعلام عن بياناتك بسهولة عند استخدام CouchDB مع Flask.

هل أنت مستعد لإجراء تغيير باستخدام NoSQL مثل CouchDB مع تطبيق Flask الخاص بك؟ فيما يلي كيفية إعداد CouchDB على جهازك المحلي وتوصيله بـ Flask.

ما هو CouchDB؟

CouchDB هي قاعدة بيانات NoSQL مملوكة حاليًا لمؤسسة Apache Software Foundation. تم إصدار البرنامج المكتوب باستخدام Erlang لأول مرة في عام 2005.

على عكس قواعد البيانات العادية المرتبطة بالجدول التي من المرجح أن تكون معتادًا عليها ، فإن CouchDB هو نظام إدارة قواعد بيانات غير علائقي يخزن البيانات على هيئة JSON خام.

CouchDB غير محظور ، لذلك لا يقفل قاعدة البيانات أثناء إدخال البيانات. تتمثل إحدى نقاط القوة في CouchDB في أنه يستخدم سياسة تحكم في التزامن متعدد الإصدارات لقراءة البيانات وكتابتها. لذلك فهي تتيح المدخلات المتزامنة من عدة مستخدمين دون تدخل من الهيكل الحالي للبيانات في قاعدة البيانات.

وبالتالي ، فإن CouchDB سريع أثناء الاستعلامات ويسهل التعامل معه أثناء استخدام الأساليب غير المتزامنة. ومع ذلك ، فإن هذا لا يجعلها أفضل من نظيرتها في SQL. كل تقنية لها مزاياها وعيوبها.

instagram viewer

إعداد CouchDB

لبدء استخدام CouchDB ، قم بتنزيل وتثبيت إصدار متوافق من الموقع الرسمي CouchDB.

وإذا لم يعمل هذا الإصدار الأخير من أجلك ، فانتقل إلى أرشيف CouchDB وتحميل الإصدار 1.6.1 ، وهو إصدار سابق من CouchDB.

بمجرد تثبيت CouchDB ، قم بتشغيله على جهاز الكمبيوتر الخاص بك كما تفعل مع أي تطبيق سطح مكتب آخر.

افتح متصفحك. ثم قم بتشغيل خادم CouchDB عن طريق لصق ما يلي في شريط العنوان الخاص بك:

http://localhost: 5984 / _utils / index.html

قم بإعداد Python و Flask

ومع ذلك ، يفترض هذا البرنامج التعليمي أنك قمت بالفعل بتثبيت Python على جهاز الكمبيوتر الخاص بك. خلاف ذلك ، انتقل إلى python.org وقم بتثبيت أحدث إصدار من Python على جهاز الكمبيوتر الخاص بك.

بمجرد إعداد CouchDB ، قم بإنشاء مجلد جذر للمشروع. ثم افتح سطر الأوامر لهذا الدليل وأنشئ ملف بيئة بايثون الافتراضية.

قم بتثبيت أحدث إصدار من Flask في المساحة الافتراضية باستخدام نقطة:

قارورة تثبيت الأنابيب

ربط القارورة مع CouchDB

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

لفعل هذا:

تثبيت Pip Flask-CouchDB

بمجرد التثبيت Flask-CouchDB بنجاح ، قم بإنشاء ملف app.py ملف في هذا المجلد الجذر. وبالمثل ، قم بإنشاء ملف قاعدة البيانات ملف - هذا يعالج إنشاء قاعدة البيانات الخاصة بك.

يفتح قاعدة البيانات واستيراد الحزم التالية:

من خادم الاستيراد couchdb

بعد ذلك ، قم بإنشاء قاعدة البيانات الخاصة بك في نفس الملف باستخدام كتلة التعليمات البرمجية التالية:

من خادم الاستيراد couchdb
الخادم = الخادم ()
db = server.create ("muocouch")

نفذ - اعدم قاعدة البيانات عبر CLI. ثم افتح أو قم بتحديث خادم CouchDB المحلي عبر متصفحك كما فعلت سابقًا. يجب أن تشاهد الآن قاعدة البيانات (muocouch في هذه الحالة) المدرجة في CouchDB.

متعلق ب:كيفية تشغيل برنامج نصي بايثون

ملحوظة: تأكد من استخدام اصطلاح تسمية بأحرف صغيرة لقواعد البيانات ، حيث قد لا يقبل CouchDB الأحرف الكبيرة أو المختلطة.

قم بتخزين بيانات CouchDB الأولى الخاصة بك باستخدام القارورة

في النهاية ، الغرض من أي قاعدة بيانات هو تخزين البيانات. بمجرد أن يكون لديك قاعدة بيانات في CouchDB ، يمكنك البدء في تخزين البيانات فيها من تطبيق Flask الخاص بك على الفور.

للبدء ، افتح app.py واستيراد الحزم التالية:

من القارورة استيراد القارورة
من خادم الاستيراد couchdb
من flaskext.couchdb مستند الاستيراد

بعد ذلك ، أنشئ تطبيق Flask ومثيل خادم CouchDB:

التطبيق = قارورة (__name__ ، static_url_path = '/ ثابت')
app.debug = صحيح
الخادم = الخادم ()

لنقم الآن بتخزين بعض مدخلات المستخدم في CouchDB:

@ app.route ('/'، methods = ['GET'، 'POST'])
سجل def ():
المستخدم = {
"اسم المستخدم": "موقع الوسائط" ،
"البريد الإلكتروني": "[email protected]
"كلمة المرور": "البيانات المشفرة"
}
db = الخادم ['muocouch'] # حدد قاعدة البيانات
doc_id ، doc_rev = db.save (المستخدم) # تخزين بياناتك في قاعدة البيانات
إرجاع "

يجب أن تكون بياناتك الآن في قاعدة البيانات

"

إذا كنت ترغب في ذلك ، يمكنك ضبط خادم Flask على وضع التطوير قبل تشغيله.

للقيام بذلك ، قم بتشغيل الأمر التالي عبر CLI الخاص بك:

تعيين FLASK_ENV = التطوير

لاحظ أن تعيين وضع الخادم اختياري. إنه فقط يجعل تصحيح أخطاء التعليمات البرمجية الخاصة بك خالية من المتاعب.

ولكن بغض النظر عن إعداد وضع الخادم ، فإليك كيفية بدء تشغيل خادم Flask عبر CMD:

تشغيل القارورة

Flask ، مع ذلك ، يتخلف عن المنفذ الخاص بك افتراضيًا إلى المضيف المحلي: 5000. يجب أن تشاهد الآن الرسالة في H2 علامة بمجرد تحميل هذا العنوان عبر متصفحك.

التحقق من صحة البيانات والتحقق من التكرارات باستخدام استعلامات CouchDB

لتوحيد هذا بشكل أكبر ، يمكنك استخدام الاستعلامات للتحقق من صحة المدخلات ومنع التكرارات في قاعدة البيانات الخاصة بك. يختلف الاستعلام عن CouchDB قليلاً عن كيفية القيام بذلك باستخدام قواعد بيانات SQL.

يستخدم CouchDB ما يسميه "طرق عرض JavaScript" للاستعلام عن البيانات من قاعدة البيانات. لحسن الحظ ، هذا بسيط نسبيًا.

قبل أن تتقدم أكثر ، إليك كيف يبدو عرض استعلام CouchDB الأساسي:

map_func = وظيفة (وثيقة) 
{emit (doc.doc_rev، doc) ؛ }
myQuery = [docType] .query (db، map_func، Red_fun = None)

الآن دعنا نستخدم الكود أعلاه عمليا:

#Create نموذج كائن مستند يسمى "المستخدمون:"
مستخدم الفئة (مستند):
doc_type = "المستخدم"
@ app.route ('/'، methods = ['GET'، 'POST'])
سجل def ():
المستخدم = {
"اسم المستخدم": "موقع الوسائط" ،
"البريد الإلكتروني": "[email protected]
"كلمة المرور": "البيانات المشفرة"
}
db = الخادم ['muocouch'] # حدد قاعدة البيانات
# استخدم وظيفة العرض لجلب البيانات الخاصة بك من CouchDB
map_func = وظيفة (وثيقة)
{emit (doc.doc_rev، doc) ؛ }
# احصل على جميع البيانات عن طريق تشغيل مجموعة استعلام
myQuery = User.query (db، map_func، Red_fun = لا شيء ، عكسي = صحيح)
q = [i ['username'] لـ i in myQuery] # قم بإخراج كل أسماء المستخدمين من قاعدة البيانات
q2 = [i ['email'] بالنسبة إلى i in myQuery] # قم بإخراج كل عناوين البريد الإلكتروني من قاعدة البيانات
q3 = q + q2 # دمج كلا الاستعلامات في قائمة واحدة
طباعة (q3)
إرجاع "

البيانات الخاصة بك الآن في قاعدة البيانات

"

يستخدم الرمز أعلاه المستعمل class للاستعلام عن البيانات التي جلبتها وظيفة العرض. انتبه جيدًا للمعلمات داخل مجموعة الاستعلام (myQuery).

طباعة q3، كما فعلت أعلاه ، يجب الآن إخراج جميع أسماء المستخدمين وعناوين البريد الإلكتروني في قاعدة البيانات داخل سطر الأوامر.

إذن ، إليك كيفية استخدام هذا الاستعلام للتحقق من صحة مدخلات المستخدمين:

إذا لم يكن الأمر كذلك (المستخدم ["اسم المستخدم"] في q3 أو المستخدم ["البريد الإلكتروني"] في الربع 3):
# تخزين بياناتك في قاعدة البيانات إذا لم تكن موجودة
doc_id ، doc_rev = db.save (مستخدم)
إرجاع "

مسجل بنجاح

"
آخر:
إرجاع "

اسم المستخدم أو البريد الإلكتروني موجود

"

تحديث المستعرض الخاص بك يعيد آخر البيان في كل مرة تحاول فيها إدخال اسم مستخدم أو بريد إلكتروني موجود بالفعل في قاعدة البيانات. وإذا كنت تدخل ملفًا جديدًا ، فإنه يخزن بياناتك بنجاح عن طريق تنفيذ ملف لو شرط.

متعلق ب:كيفية استخدام بيان إذا بايثون

هذا كل شيء! لقد قمت للتو بإنشاء قاعدة بيانات NoSQL الأولى الخاصة بك باستخدام Flask-CouchDB.

على الرغم من أن إنشاء قواعد البيانات والاستعلام عنها في CouchDB يدور حول الأمثلة التي أبرزناها هنا ، يمكنك استكشاف وظائف Flask بشكل أكبر. على سبيل المثال ، يمكنك تدوير حقول الإدخال باستخدام wtforms ووضع علامة على التكرارات باستخدام رسالة Flask فلاش.

يمكنك حتى تمرير استفسارك إلى jQuery في JavaScript للتحقق من صحة المدخلات والتحقق من التكرارات بشكل غير متزامن.

هل CouchDB أفضل من قواعد بيانات SQL؟

يعتمد استخدام CouchDB أو أي قاعدة بيانات NoSQL أخرى مع Flask أو أي تقنية برمجة أخرى على تفضيلاتك. ولكنه يكون مفيدًا أثناء التعامل مع البيانات غير الهيكلية والوسائط الأولية.

ومع ذلك ، قبل أن تقرر ، قد ترغب في النظر إلى الاختلافات بين قواعد بيانات NoSQL و SQL لمساعدتك في تحديد أي منها مناسب لمشروعك.

يشاركسقسقةبريد إلكتروني
SQL مقابل. NoSQL: ما هي أفضل قاعدة بيانات لمشروعك التالي؟

قد يكون اختيار نوع قاعدة البيانات أمرًا صعبًا. هل يجب عليك اختيار SQL أو NoSQL؟

اقرأ التالي

مواضيع ذات صلة
  • برمجة
  • قاعدة البيانات
  • برمجة
  • دروس الترميز
نبذة عن الكاتب
إيدوو أوميسولا (94 مقالة منشورة)

Idowu شغوف بأي شيء التكنولوجيا الذكية والإنتاجية. في أوقات فراغه ، يلعب بالبرمجة ويتحول إلى رقعة الشطرنج عندما يشعر بالملل ، لكنه أيضًا يحب الابتعاد عن الروتين من حين لآخر. يحفزه شغفه بإظهار طريقة حول التكنولوجيا الحديثة للناس على كتابة المزيد.

المزيد من Idowu Omisola

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك