Η σύνδεση του Flask με βάσεις δεδομένων SQL, όπως το PostgreSQL και το SQLite, είναι ένα πρόβλημα. Αλλά το πλαίσιο συγχρονίζεται τέλεια με βάσεις δεδομένων NoSQL όπως το CouchDB, επίσης. Και ως πρόσθετο όφελος, μπορείτε να αναζητήσετε εύκολα τα δεδομένα σας όταν χρησιμοποιείτε το CouchDB με το Flask.

Είστε έτοιμοι να κάνετε μια αλλαγή χρησιμοποιώντας ένα NoSQL όπως το CouchDB με την εφαρμογή Flask; Δείτε πώς μπορείτε να ρυθμίσετε το CouchDB στον τοπικό σας υπολογιστή και να το συνδέσετε με το Flask.

Τι είναι το CouchDB;

Το CouchDB είναι μια βάση δεδομένων NoSQL που ανήκει επί του παρόντος στο acheδρυμα Λογισμικού Apache. Γραμμένο με Erlang, το λογισμικό κυκλοφόρησε για πρώτη φορά το 2005.

Σε αντίθεση με τις συνήθεις βάσεις δεδομένων που συνδέονται με πίνακες που έχετε συνηθίσει πιθανότατα, το CouchDB είναι ένα μη-σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων που αποθηκεύει δεδομένα ως ακατέργαστο JSON.

Το CouchDB δεν αποκλείει, επομένως δεν κλειδώνει τη βάση δεδομένων κατά την εισαγωγή δεδομένων. Ένα από τα δυνατά σημεία του CouchDB είναι ότι χρησιμοποιεί μια πολιτική ελέγχου ταυτόχρονης έκδοσης για την ανάγνωση και εγγραφή δεδομένων. Επιτρέπει λοιπόν ταυτόχρονες εισόδους από πολλούς χρήστες χωρίς παρεμβολές από την υπάρχουσα δομή των δεδομένων στη βάση δεδομένων.

Έτσι, το CouchDB είναι γρήγορο κατά τη διάρκεια των ερωτημάτων και εύκολο στην εργασία ενώ χρησιμοποιεί ασύγχρονες μεθόδους. Τούτου λεχθέντος, αυτό δεν το κάνει καλύτερο από το αντίστοιχο SQL. Κάθε τεχνολογία έχει τα υπέρ και τα κατά της.

CouchDB Setup

Για να ξεκινήσετε να χρησιμοποιείτε το CouchDB, κάντε λήψη και εγκαταστήστε μια συμβατή έκδοση από Επίσημος ιστότοπος του CouchDB.

Και αν αυτή η τελευταία έκδοση δεν λειτουργεί για εσάς, προχωρήστε στο Αρχείο CouchDB και κατεβάστε την έκδοση 1.6.1, η οποία είναι παλαιότερη έκδοση του CouchDB.

Μόλις εγκαταστήσετε το CouchDB, τρέξτε το στον υπολογιστή σας όπως θα κάνατε σε οποιαδήποτε άλλη εφαρμογή για επιτραπέζιους υπολογιστές.

Ανοίξτε το πρόγραμμα περιήγησής σας. Στη συνέχεια, ξεκινήστε τον διακομιστή του CouchDB, επικολλώντας τα παρακάτω στη γραμμή διευθύνσεών σας:

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

Ρύθμιση Python και Flask

Αυτό το σεμινάριο, ωστόσο, υποθέτει ότι έχετε ήδη εγκαταστήσει την Python στον υπολογιστή σας. Διαφορετικά, πηγαίνετε στο python.org και εγκαταστήστε την τελευταία έκδοση του Python στον υπολογιστή σας.

Μόλις ρυθμίσετε το CouchDB, δημιουργήστε έναν ριζικό φάκελο έργου. Στη συνέχεια, ανοίξτε τη γραμμή εντολών σε αυτόν τον κατάλογο και δημιουργήστε ένα Εικονικό περιβάλλον Python.

Εγκαταστήστε την πιο πρόσφατη έκδοση του Flask στον εικονικό χώρο χρησιμοποιώντας κουκούτσι:

φιάλη εγκατάστασης pip

Συνδέστε τη φιάλη με το CouchDB

Για να ξεκινήσετε να χρησιμοποιείτε το CouchDB με την εφαρμογή Flask, εγκαταστήστε Flask-CouchDB, το πακέτο χρόνου εκτέλεσης για τη σύνδεση της βάσης δεδομένων με το Flask.

Για να το κάνω αυτό:

pip εγκατάσταση Flask-CouchDB

Μόλις εγκαταστήσετε Flask-CouchDB με επιτυχία, δημιουργήστε ένα app.py αρχείο σε αυτόν τον ριζικό φάκελο. Ομοίως, δημιουργήστε ένα βάση δεδομένων.py αρχείο - αυτό χειρίζεται τη δημιουργία της βάσης δεδομένων σας.

Ανοιξε βάση δεδομένων.py και εισάγετε τα ακόλουθα πακέτα:

από διακομιστή εισαγωγής couchdb

Στη συνέχεια, δημιουργήστε τη βάση δεδομένων σας στο ίδιο αρχείο χρησιμοποιώντας το ακόλουθο μπλοκ κώδικα:

από διακομιστή εισαγωγής couchdb
διακομιστής = Διακομιστής ()
db = server.create ('muocouch')

Εκτέλεση βάση δεδομένων.py μέσω του CLI. Στη συνέχεια, ανοίξτε ή ανανεώστε τον τοπικό διακομιστή του CouchDB μέσω του προγράμματος περιήγησής σας, όπως κάνατε νωρίτερα. Θα πρέπει τώρα να δείτε τη βάση δεδομένων (muocouch σε αυτήν την περίπτωση) που αναφέρονται στο CouchDB.

Σχετίζεται με:Πώς να εκτελέσετε ένα σενάριο Python

Σημείωση: Βεβαιωθείτε ότι χρησιμοποιείτε μια μικρή ονομασία για βάσεις δεδομένων, καθώς το CouchDB ενδέχεται να μην δέχεται κεφαλαία ή μικτά πεζά.

Αποθηκεύστε τα πρώτα σας δεδομένα CouchDB χρησιμοποιώντας το Flask

Τελικά, ο σκοπός κάθε βάσης δεδομένων είναι η αποθήκευση δεδομένων. Μόλις έχετε μια βάση δεδομένων στο CouchDB, μπορείτε να ξεκινήσετε την αποθήκευση δεδομένων σε αυτήν από την εφαρμογή Flask αμέσως.

Για να ξεκινήσετε, ανοίξτε app.py και εισάγετε τα ακόλουθα πακέτα:

από φιάλη εισαγωγής φιάλης
από διακομιστή εισαγωγής couchdb
από το έγγραφο εισαγωγής flaskext.couchdb

Στη συνέχεια, δημιουργήστε μια εφαρμογή Flask και μια παρουσία διακομιστή CouchDB:

app = Φιάλη (__name__, static_url_path = '/static')
app.debug = Αλήθεια
διακομιστής = Διακομιστής ()

Τώρα ας αποθηκεύσουμε μερικές εισόδους χρηστών στο CouchDB:

@app.route ('/', Methods = ['GET', 'POST'])
def register ():
χρήστης = {
"όνομα χρήστη": "ιστότοπος πολυμέσων",
"email": "[email protected]",
"password": "encrypteddata"
}
db = διακομιστής ['muocouch'] #επιλέξτε τη βάση δεδομένων
doc_id, doc_rev = db.save (χρήστης) #αποθηκεύστε τα δεδομένα σας στη βάση δεδομένων
ΕΠΙΣΤΡΟΦΗ "

Τα δεδομένα σας θα πρέπει τώρα να βρίσκονται στη βάση δεδομένων

"

Εάν θέλετε, μπορείτε να ρυθμίσετε τον διακομιστή Flask στη λειτουργία ανάπτυξης πριν τον εκτελέσετε.

Για να το κάνετε αυτό, εκτελέστε την ακόλουθη εντολή μέσω του CLI σας:

σύνολο FLASK_ENV = ανάπτυξη

Σημειώστε ότι η ρύθμιση της λειτουργίας διακομιστή είναι προαιρετική. Κάνει απρόσκοπτο μόνο τον εντοπισμό σφαλμάτων στον κωδικό σας.

Αλλά ανεξάρτητα από τη ρύθμιση λειτουργίας διακομιστή, δείτε πώς μπορείτε να ξεκινήσετε τον διακομιστή φιάλης μέσω του CMD:

τρέξιμο φιάλης

Το Flask, ωστόσο, ορίζει τη θύρα σας ως προεπιλογή localhost: 5000. Θα πρέπει τώρα να δείτε το μήνυμα στο Η2 ετικέτα μόλις φορτώσετε αυτήν τη διεύθυνση μέσω του προγράμματος περιήγησής σας.

Επικυρώστε δεδομένα και ελέγξτε διπλότυπα χρησιμοποιώντας ερωτήματα CouchDB

Για να το τυποποιήσετε περαιτέρω, μπορείτε να χρησιμοποιήσετε ερωτήματα για την επικύρωση εισόδων και την αποτροπή διπλότυπων στη βάση δεδομένων σας. Το ερώτημα για το CouchDB είναι λίγο διαφορετικό από το πώς το κάνετε αυτό με βάσεις δεδομένων SQL.

Το CouchDB χρησιμοποιεί αυτό που ονομάζει "προβολές JavaScript" για να ζητήσει δεδομένα από τη βάση δεδομένων. Ευτυχώς, αυτό είναι σχετικά απλό.

Πριν προχωρήσετε περαιτέρω, δείτε πώς φαίνεται μια βασική προβολή ερωτήματος CouchDB:

map_func = συνάρτηση (doc) 
{emit (doc.doc_rev, doc); }
myQuery = [docType] .query (db, map_func, redu_fun = Καμία)

Τώρα ας χρησιμοποιήσουμε τον παραπάνω κώδικα πρακτικά:

#Δημιουργήστε ένα μοντέλο αντικειμένου εγγράφου που ονομάζεται "Χρήστες:"
Χρήστης κλάσης (Έγγραφο):
doc_type = 'Χρήστης'
@app.route ('/', Methods = ['GET', 'POST'])
def register ():
χρήστης = {
"όνομα χρήστη": "ιστότοπος πολυμέσων",
"email": "[email protected]",
"password": "encrypteddata"
}
db = διακομιστής ['muocouch'] #επιλέξτε τη βάση δεδομένων
# Χρησιμοποιήστε τη λειτουργία προβολής για να λάβετε τα δεδομένα σας από το CouchDB
map_func = συνάρτηση (doc)
{emit (doc.doc_rev, doc); }
# Λάβετε όλα τα δεδομένα εκτελώντας ένα σύνολο ερωτημάτων
myQuery = User.query (db, map_func, redu_fun = None, reverse = True)
q = [i ['όνομα χρήστη'] για i στο myQuery] # Αφαιρέστε όλα τα ονόματα χρήστη από τη βάση δεδομένων
q2 = [i ['email'] για i στο myQuery] # Βγάλτε όλες τις διευθύνσεις email από τη βάση δεδομένων
q3 = q+q2 # Συγχώνευση και των δύο ερωτημάτων σε μία λίστα
εκτύπωση (q3)
ΕΠΙΣΤΡΟΦΗ "

Τα δεδομένα σας βρίσκονται τώρα στη βάση δεδομένων

"

Ο παραπάνω κώδικας χρησιμοποιεί το Χρήστης κλάση για να αναζητήσει τα δεδομένα που έχει ληφθεί από τη συνάρτηση προβολής. Δώστε μεγάλη προσοχή στις παραμέτρους μέσα στο σύνολο ερωτημάτων (myQuery).

Εκτύπωση q3, όπως κάνατε παραπάνω, θα πρέπει τώρα να εξάγονται όλα τα ονόματα χρήστη και οι διευθύνσεις email στη βάση δεδομένων στη γραμμή εντολών.

Δείτε λοιπόν πώς μπορείτε να χρησιμοποιήσετε αυτό το ερώτημα για να επικυρώσετε τις εισόδους των χρηστών:

αν όχι (χρήστης ['username'] στο q3 ή χρήστης ['email'] στο q3):
#αποθηκεύστε τα δεδομένα σας στη βάση δεδομένων εάν δεν υπάρχουν
doc_id, doc_rev = db.save (χρήστης)
ΕΠΙΣΤΡΟΦΗ "

Επιτυχής Εγγραφή

"
αλλού:
ΕΠΙΣΤΡΟΦΗ "

Όνομα χρήστη ή email υπάρχει

"

Η ανανέωση του προγράμματος περιήγησής σας επιστρέφει το αλλού δήλωση κάθε φορά που προσπαθείτε να εισαγάγετε ένα όνομα χρήστη ή ένα email που υπάρχει ήδη στη βάση δεδομένων. Και αν εισάγετε ένα νέο, αποθηκεύει με επιτυχία τα δεδομένα σας εκτελώντας το αν κατάσταση.

Σχετίζεται με:Πώς να χρησιμοποιήσετε τη δήλωση 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

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή