חיבור הבקבוק עם מסדי נתונים של SQL כמו PostgreSQL ו- SQLite הוא דבר פשוט. אבל המסגרת מסתנכרנת בצורה מושלמת עם מסדי נתונים של NoSQL כמו CouchDB, גם. ובתור יתרון נוסף, תוכל לבצע שאילתות בקלות על הנתונים שלך כאשר אתה משתמש ב- CouchDB עם Flask.

מוכן לבצע שינוי באמצעות NoSQL כמו CouchDB עם אפליקציית הבקבוק שלך? כך תוכל להגדיר את CouchDB במחשב המקומי שלך ולחבר אותו עם Flask.

מהו CouchDB?

CouchDB הוא מסד נתונים NoSQL בבעלות כיום קרן Apache Software. התוכנה נכתבה עם 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.org והתקן את הגירסה העדכנית ביותר של Python במחשב האישי שלך.

לאחר שתגדיר את CouchDB, צור תיקיית שורש פרוייקט. לאחר מכן פתח את שורת הפקודה לספרייה זו וצור א סביבה וירטואלית של פייתון.

התקן את הגירסה העדכנית ביותר של Flask במרחב הווירטואלי באמצעות צִפצוּף:

בקבוק התקנת pip

חבר בקבוק עם CouchDB

כדי להתחיל להשתמש ב- CouchDB עם אפליקציית הבקבוק שלך, התקן Flask-CouchDB, חבילת זמן הריצה לחיבור מסד הנתונים עם Flask.

כדי לעשות זאת:

pip התקן את Flask-CouchDB

ברגע שאתה מתקין Flask-CouchDB בהצלחה, צור app.py הקובץ בתיקיית השורש ההיא. באופן דומה, צור א database.py קובץ - זה מטפל ביצירת מסד הנתונים שלך.

לִפְתוֹחַ database.py וייבא את החבילות הבאות:

משרת יבוא couchdb

לאחר מכן, צור את מסד הנתונים שלך באותו קובץ באמצעות בלוק הקוד הבא:

משרת יבוא couchdb
שרת = שרת ()
db = server.create ('muocouch')

לבצע database.py באמצעות CLI. לאחר מכן פתח או רענן את השרת המקומי של CouchDB באמצעות הדפדפן שלך כפי שעשית קודם. כעת אתה אמור לראות את מסד הנתונים (muocouch במקרה זה) המופיע ב- CouchDB.

קָשׁוּר:כיצד להריץ סקריפט פייתון

הערה: ודא שאתה משתמש במוסכמת שמות של אותיות קטנות עבור מסדי נתונים, מכיוון ש- CouchDB לא יכול לקבל אותיות גדולות או מעורבות.

אחסן את נתוני CouchDB הראשונים שלך באמצעות בקבוק

בסופו של דבר, מטרתו של כל מסד נתונים היא אחסון נתונים. לאחר שיהיה לך מסד נתונים ב- CouchDB, תוכל להתחיל לאחסן בו נתונים מיידית מבקבוק שלך.

כדי להתחיל, פתח app.py וייבא את החבילות הבאות:

מבקבוק יבוא בקבוק
משרת יבוא couchdb
ממסמך ייבוא ​​flaskext.couchdb

לאחר מכן, צור יישום Flask ו- מופע שרת CouchDB:

app = Flask (__name__, static_url_path = '/static')
app.debug = נכון
שרת = שרת ()

עכשיו בואו לאחסן כמה תשומות משתמש ב- CouchDB:

@app.route ('/', method = ['GET', 'POST'])
def register ():
משתמש = {
"username": "אתר מדיה",
"email": "[email protected]",
"password": "נתונים מוצפנים"
}
db = server ['muocouch'] #בחר את מסד הנתונים
doc_id, doc_rev = db.save (משתמש) #אחסן את הנתונים שלך במסד הנתונים ה
לחזור "

הנתונים שלך אמורים להיות כעת במסד הנתונים

"

אם תרצה, תוכל להגדיר את שרת הבקבוק שלך למצב פיתוח לפני שתפעיל אותו.

לשם כך, הפעל את הפקודה הבאה באמצעות CLI שלך:

להגדיר FLASK_ENV = פיתוח

שים לב שהגדרת מצב השרת היא אופציונלית. זה רק גורם לאיתור באגים לקוד שלך ללא טרחה.

אך ללא קשר להגדרת מצב השרת, הנה כיצד להפעיל את שרת הבקבוק באמצעות CMD:

הפעלה של בקבוקים

עם זאת, בקבוק כברירת מחדל ליציאה שלך מארח מקומי: 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)

עכשיו בואו נשתמש בקוד לעיל באופן מעשי:

#צור מודל של אובייקט מסמך בשם "משתמשים:"
משתמש בכיתה (מסמך):
doc_type = 'משתמש'
@app.route ('/', method = ['GET', 'POST'])
def register ():
משתמש = {
"username": "אתר מדיה",
"email": "[email protected]",
"password": "נתונים מוצפנים"
}
db = server ['muocouch'] #בחר את מסד הנתונים
# השתמש בפונקציית התצוגה כדי לאחזר את הנתונים שלך מ- CouchDB
map_func = function (doc)
{emit (doc.doc_rev, doc); }
# קבל את כל הנתונים על ידי הפעלת קבוצת שאילתות
myQuery = User.query (db, map_func, reduce_fun = None, reverse = True)
q = [i ['שם משתמש'] עבור i in myQuery] # סלק את כל שמות המשתמשים ממאגר הנתונים
q2 = [i ['email'] for i in myQuery] # סלק את כל כתובות הדוא"ל ממאגר הנתונים
q3 = q+q2 # מיזוג שתי השאילתות לרשימה אחת
הדפסה (q3)
לחזור "

הנתונים שלך נמצאים כעת במסד הנתונים

"

הקוד למעלה משתמש ב- מִשׁתַמֵשׁ class לשאול את הנתונים שנאספו על ידי פונקציית התצוגה. שימו לב לפרמטרים בתוך קבוצת השאילתות (myQuery).

הַדפָּסָה q3כפי שעשית לעיל, כעת יש להוציא את כל שמות המשתמשים וכתובות הדוא"ל במסד הנתונים בתוך שורת הפקודה.

אז כך תוכל להשתמש בשאילתה זו כדי לאמת את תשומות המשתמשים:

אם לא (משתמש ['שם משתמש'] ב- q3 או משתמש ['email'] ב- q3):
#אחסן את הנתונים שלך במסד הנתונים אם הם אינם קיימים
doc_id, doc_rev = db.save (משתמש)
לחזור "

נרשם בהצלחה

"
אַחֵר:
לחזור "

שם משתמש או דוא"ל קיימים

"

רענון הדפדפן שלך מחזיר את אַחֵר הצהרה בכל פעם שאתה מנסה להזין שם משתמש או הודעת דוא"ל שכבר נמצאת במסד הנתונים. ואם אתה מזין אחד חדש, הוא מאחסן את הנתונים שלך בהצלחה על ידי ביצוע אם מַצָב.

קָשׁוּר:כיצד להשתמש בהצהרת Python if

זהו זה! הרגע יצרת את מסד הנתונים NoSQL הראשון שלך באמצעות Flask-CouchDB.

למרות שיצירה ובירור מאגרי מידע ב- CouchDB סובבים סביב הדוגמאות שהדגשנו כאן, תוכל לסקור את הפונקציונליות של Flask עוד יותר. לדוגמה, תוכל לסובב שדות קלט באמצעות wtforms ולסמן כפילויות באמצעות ההודעה של Flask הֶבזֵק.

אתה יכול אפילו להעביר את השאילתה שלך ל- jQuery של JavaScript כדי לאמת תשומות ולבדוק כפילויות באופן אסינכרוני.

האם CouchDB טוב יותר ממסדי נתונים של SQL?

השימוש ב- CouchDB או בכל מסד נתונים NoSQL אחר עם Flask או כל טכנולוגיית תכנות אחרת תלוי בהעדפתך. אבל זה שימושי בעת התמודדות עם נתונים חסרי מבנה ומדיה גולמית.

עם זאת, לפני שתחליט, ייתכן שתרצה לבחון את ההבדלים בין מסדי נתונים של NoSQL ו- SQL כדי לעזור לך להחליט איזה מהם מתאים לפרויקט שלך.

לַחֲלוֹקצִיוּץאימייל
SQL לעומת NoSQL: מהו מסד הנתונים הטוב ביותר לפרויקט הבא שלך?

בחירת סוג מסד נתונים יכולה להיות מסובכת. האם לבחור SQL או NoSQL?

קרא הבא

נושאים קשורים
  • תִכנוּת
  • מאגר מידע
  • תִכנוּת
  • הדרכות קידוד
על הסופר
Idowu Omisola (פורסמו 94 מאמרים)

Idowu מתלהבת מכל דבר חכם וטכנולוגי. בזמנו הפנוי הוא משתעשע בקידוד ועובר ללוח השחמט כשהוא משועמם, אבל הוא גם אוהב להיפרד מדי פעם מהשגרה. התשוקה שלו להראות לאנשים את הדרך לטכנולוגיה המודרנית מניעה אותו לכתוב יותר.

עוד מאת Idowu Omisola

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה