Πώς να συνδέσετε την εφαρμογή Flask με το CouchDB: Μια βάση δεδομένων NoSQL

Πώς να συνδέσετε την εφαρμογή Flask με το CouchDB: Μια βάση δεδομένων NoSQL

Η σύνδεση του 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 στον εικονικό χώρο χρησιμοποιώντας κουκούτσι :

μετακίνηση εφαρμογών από τηλέφωνο σε κάρτα sd
pip install flask

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

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

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

pip install Flask-CouchDB

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

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

from couchdb import Server

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

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

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

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

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

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

Τελικά, ο σκοπός κάθε βάσης δεδομένων είναι η αποθήκευση δεδομένων. Μόλις έχετε μια βάση δεδομένων στο 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

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

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

flask run

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

Επικυρώστε δεδομένα και ελέγξτε διπλότυπα χρησιμοποιώντας ερωτήματα 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

'

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

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

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

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

'

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

Σχετίζεται με: Πώς να χρησιμοποιήσετε τη δήλωση Python if

Αυτό είναι! Μόλις δημιουργήσατε την πρώτη σας βάση δεδομένων NoSQL χρησιμοποιώντας το Flask-CouchDB.

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

Μπορείτε ακόμη να μεταβιβάσετε το ερώτημά σας στο jQuery της JavaScript για να επικυρώσετε εισόδους και να ελέγξετε τα διπλότυπα ασύγχρονα.

Είναι το CouchDB καλύτερο από τις βάσεις δεδομένων SQL;

Η χρήση του CouchDB ή οποιασδήποτε άλλης βάσης δεδομένων NoSQL με Flask ή οποιαδήποτε άλλη τεχνολογία προγραμματισμού εξαρτάται από τις προτιμήσεις σας. Αλλά είναι χρήσιμο ενώ ασχολείστε με δεδομένα χωρίς δομή και ακατέργαστα μέσα.

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

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ SQL εναντίον NoSQL: Ποια είναι η καλύτερη βάση δεδομένων για το επόμενο έργο σας;

Η επιλογή ενός τύπου βάσης δεδομένων μπορεί να είναι δύσκολη. Πρέπει να επιλέξετε SQL ή NoSQL;

Διαβάστε Επόμενο
Σχετικά θέματα
  • Προγραμματισμός
  • βάση δεδομένων
  • Προγραμματισμός
  • Φροντιστήρια κωδικοποίησης
Σχετικά με τον Συγγραφέα Ηδίσου Ομισόλα(Δημοσιεύθηκαν 94 άρθρα)

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

Περισσότερα από το Idowu Omisola

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

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

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