كيفية توصيل تطبيق Flask الخاص بك بـ CouchDB: قاعدة بيانات NoSQL

كيفية توصيل تطبيق Flask الخاص بك بـ CouchDB: قاعدة بيانات NoSQL

يعد ربط 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. كل تقنية لها مزاياها وعيوبها.

إعداد CouchDB

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





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

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





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

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

قم بإعداد Python و Flask

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

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

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

كيفية تغيير كلمة مرور wifi windows 10
pip install flask

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

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

لفعل هذا:

pip install Flask-CouchDB

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

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

from couchdb import Server

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

from couchdb import Server
server = Server()
db = server.create('muocouch')

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

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

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

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

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

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

from flask import Flask
from couchdb import Server
from flaskext.couchdb import Document

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

app = Flask(__name__, static_url_path='/static')
app.debug=True
server = Server()

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

@app.route('/', methods=['GET', 'POST'])
def register():
user = {
'username':'media site',
'email':'justmail@gmail.com',
'password':'encrypteddata'
}
db = server['muocouch'] #select the database
doc_id, doc_rev = db.save(user) #store your data in th database
return '

Your data should now be in the database

'

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

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

set FLASK_ENV=development

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

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

flask run

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

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

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

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

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

map_func = '''function(doc)
{ emit(doc.doc_rev, doc); }'''
myQuery = [docType].query(db, map_func, reduce_fun=None)

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

#Create a document object model called ' Users :'
class User(Document):
doc_type = 'User'
@app.route('/', methods=['GET', 'POST'])
def register():
user = {
'username':'media site',
'email':'justmail@gmail.com',
'password':'encrypteddata'
}
db = server['muocouch'] #select the database
# Use the view function to fetch your data from CouchDB
map_func = '''function(doc)
{ emit(doc.doc_rev, doc); }'''
# Get all the data by running a query set
myQuery = User.query(db, map_func, reduce_fun=None, reverse=True)
q = [i['username'] for i in myQuery] # Loop out all the usernames from the database
q2 = [i['email'] for i in myQuery] # Loop out all the email addresses from the database
q3 = q+q2 # Merge both queries into a single list
print(q3)
return '

Your data is now in the database

'

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

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

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

if not (user['username'] in q3 or user['email'] in q3):
#store your data into the database if itdoesn't exist
doc_id, doc_rev = db.save(user)
return '

Registered successfully

'
else:
return '

Username or email exists

'

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

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

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

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

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

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

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

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

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

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

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

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

المزيد من Idowu Omisola

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

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

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