flask database handling how use flask with database
Σε αυτό το σεμινάριο βάσης δεδομένων Flask, μάθετε να χρησιμοποιείτε το Flask με διάφορες βάσεις δεδομένων, όπως το Flask MySQL, το Flask MongoDB, το SQLite κ.λπ.
Θα επεκτείνουμε τις έννοιες που καλύπτονται στο πρώτο μας μάθημα Flask Python. Ξεκινάμε χρησιμοποιώντας το Flask με το MongoDB, μια βάση δεδομένων NoSQL που βασίζεται σε έγγραφα, όπου το NoSQL σημαίνει Not Only SQL.
Πρώτα, καλύπτουμε την έννοια της σύνδεσης με τη βάση δεδομένων και, στη συνέχεια, σας ενημερώνουμε πώς να μην κλειδωθείτε με μία βάση δεδομένων. Εάν απαιτείται, μπορούμε να τροποποιήσουμε μόνο τις διαμορφώσεις για να αλλάξουμε το backend της βάσης δεδομένων.
=> Δείτε τον Οδηγό εκπαίδευσης Perfect Flask εδώ
Τι θα μάθετε:
Εκμάθηση βάσης δεδομένων Flask
Σε αυτό το σεμινάριο, οι αναγνώστες μπορούν να πραγματοποιήσουν μια σύγκριση μεταξύ των βάσεων δεδομένων που συζητήθηκαν. Επιπλέον, μιλάμε για Flask-MongoEngine, Flask-SQLAlchemy και Flask MongoAlchemy. Αυτά τα δύο ORMs, δηλαδή το Object Relation Mapper, είναι αρκετά δημοφιλή.
Οι ORM κάτω από την κουκούλα μεταφράζουν με διαφάνεια τα αντικείμενα (μοντέλα βάσης δεδομένων) σε εντολές βάσης δεδομένων ή δηλώσεις SQL.
συνάρτηση ταξινόμησης φυσαλίδων c ++
Τα οφέλη από τη χρήση ενός ORM αναφέρονται παρακάτω:
- Οι προγραμματιστές μπορούν να εργαστούν με αντικείμενα αντί για πίνακες και SQL.
- Χρησιμοποιήστε τις Μετεγκαταστάσεις για να παρακολουθείτε τις ενημερώσεις της βάσης δεδομένων.
- Μειώνει το κόστος και το χρόνο ανάπτυξης.
- Ξεπερνά τις διαφορές SQL για τη βάση δεδομένων.
Όταν χρησιμοποιείτε ORM, οι προγραμματιστές δεν χρειάζεται να γράφουν σύνθετα ερωτήματα SQL και εντολές για την εκτέλεση βασικών εντολών SQL.
Συνδεθείτε στη βάση δεδομένων
Ανοίξτε το αρχείο διαμόρφωσης και παρατηρήστε τις παρακάτω τιμές. Το Flask-Appbuilder λαμβάνει τις λεπτομέρειες της βάσης δεδομένων στη συμβολοσειρά σύνδεσης από τις αναφερόμενες τιμές.
# The MongoEngine connection string. MONGODB_SETTINGS = { 'DB': 'mydb', 'connect': False, }
Όλες οι δυνατότητες χαμηλού επιπέδου της διαχείρισης βάσεων δεδομένων από το ORM έχουν τυλιχτεί με εντολές Flask Click, τις οποίες μπορούμε να δούμε χρησιμοποιώντας τη φιάλη fab - βοήθεια στη γραμμή εντολών.
Flask MongoDB
Σε αυτήν την ενότητα, θα μάθουμε πώς να χρησιμοποιούμε ORM αντί να χρησιμοποιούμε ακατέργαστα SQL scripts για να δουλεύουμε με βάσεις δεδομένων στο Flask.
MongoDB είναι μια μη σχεσιακή βάση δεδομένων που βασίζεται σε έγγραφα. Το έχουμε ήδη διαμορφώσει με την τρέχουσα εφαρμογή παραδείγματος οδηγού φιάλης.
Χρησιμοποιήστε τις παρακάτω εντολές για τη διαχείριση του διακομιστή MongoDB στον τοπικό υπολογιστή.
sudo systemctl start mongod # to start MongoDB sudo systemctl stop mongod # to stop MongoDB sudo systemctl status mongod # to check status MongoDB
Συζητήσαμε δύο διάσημα ORM που μπορείτε να χρησιμοποιήσετε με το MongoDB και το Flask.
Χρησιμοποιώντας έναν σχεδιαστή βάσης δεδομένων, δημιουργήσαμε δύο πίνακες που ονομάζονται Άλμπουμ και Τραγούδι και ορίσαμε τη σχέση μεταξύ πολλών και άλμπουμ. Δίνεται παρακάτω η εικόνα που απεικονίζει την ίδια.

Φιάλη MongoEngine
Τώρα ας δημιουργήσουμε το πρώτο μας μοντέλο MongoEngine DB.
Δημιουργήστε ή επεξεργαστείτε το αρχείο models.py στον κατάλογο εφαρμογών και προσθέστε τον ακόλουθο κώδικα.
from mongoengine import Document from mongoengine import DateTimeField, StringField, ReferenceField, ListField, IntField class Album(Document): name = StringField(unique=True, required=True, max_lenth=100) def __str__(self): return self.name class Song(Document): title = StringField(max_lenth=200, required=True, unique=True) rating = IntField(default=0,max_lenth=1) # 1 to 9 album = ReferenceField(Album) def __str__(self): return self.title
Έχουμε δημιουργήσει δύο μοντέλα MongoEngine που ονομάζονται Album και Song. Αυτά τα μοντέλα αντιστοιχούν στα αντίστοιχα έγγραφα στο MongoDB.
Το άλμπουμ έχει ένα πεδίο συμβολοσειράς τύπου με ορισμένους περιορισμούς.
- Το όνομα του άλμπουμ είναι μοναδικό.
- Το όνομα του άλμπουμ δεν μπορεί να είναι κενό.
- Το όνομα του άλμπουμ μπορεί να αποτελείται από εκατό χαρακτήρες το πολύ.
Ομοίως, το έγγραφο Song έχει έναν τίτλο, ένα πεδίο αξιολόγησης και ένα πεδίο αναφοράς που οδηγεί σε ένα άλλο έγγραφο, Άλμπουμ. Ας αποθηκεύσουμε αυτό το αρχείο και δημιουργήστε δεδομένα χρησιμοποιώντας αυτά τα δύο μοντέλα. Μεταβείτε στον ριζικό κατάλογο του έργου και χρησιμοποιήστε την εντολή φλάσκας για πρόσβαση στην εφαρμογή φιάλης στο κέλυφος Python.
Μόλις εισαγάγετε το κέλυφος, χρησιμοποιήστε τις παρακάτω δηλώσεις για πρόσβαση στα μοντέλα MongoEngine και δημιουργήστε δείγματα δεδομένων όπως φαίνεται παρακάτω.
>>> from app.models import Album, Song >>> album1 = Album(name='Album1') >>> album1.save() >>> song1 = Song(title='Song1', rating=9, album=album1) >>> song1.save()
Τώρα ας αποκτήσουμε πρόσβαση στη βάση δεδομένων χρησιμοποιώντας τον πελάτη Mongo και να δούμε αν τα δεδομένα αποθηκεύονται ως αποτέλεσμα των παραπάνω δηλώσεων. Στον παραπάνω κώδικα, πρώτα εισάγουμε άλμπουμ και τραγούδι και, στη συνέχεια, δημιουργούμε τα αντικείμενά τους με τις απαιτούμενες τιμές των παραμέτρων.
Εδώ οι παράμετροι είναι τα ονόματα πεδίων όπως ορίζονται στα μοντέλα και αναφέρουμε τα δεδομένα μας ως τιμές σε αυτές τις παραμέτρους. Μόλις η δημιουργία αντικειμένου είναι επιτυχής, καλούμε τη μέθοδο αποθήκευσης στα αντίστοιχα αντικείμενα για να αποθηκεύσουμε τα έγγραφα στη βάση δεδομένων.
Χρησιμοποιήστε την εντολή mongo για πρόσβαση στο MongoDB. Μόλις συνδεθείτε στον διακομιστή χρησιμοποιώντας το πρόγραμμα-πελάτη mongo, χρησιμοποιήστε τις παρακάτω εντολές.
# 1) Ελέγξτε τη λίστα των βάσεων δεδομένων
> show dbs #----- output ---- admin 0.000GB config 0.000GB local 0.000GB mydb 0.001GB #----- output ----
# 2) Χρησιμοποιήστε τη βάση δεδομένων μας που ονομάζεται mydb
> use mydb #----- output ---- switched to db mydb #----- output ----
# 3) Ελέγξτε τις συλλογές a.k.a πίνακες σε RDBMS
> show collections #----- output ---- album permission permission_view role song user view_menu #----- output ----
# 4) Αναφέρετε οποιοδήποτε έγγραφο στη συλλογή άλμπουμ.
> db.album.findOne() #----- output ---- { '_id' : ObjectId('5eddb43b8b1e179bef87d41d'), 'name' : 'Album1' } #----- output ----
# 5) Αναφέρετε οποιοδήποτε έγγραφο στη συλλογή τραγουδιών.
> db.song.findOne() #----- output ---- { '_id' : ObjectId('5eddb74b0177c8f096d880ec'), 'title' : 'Song1', 'rating' : 9, 'album' : ObjectId('5eddb43b8b1e179bef87d41d') } #----- output ----
Εάν έχετε συνεργαστεί με το Django, τότε θα συνειδητοποιήσετε ότι το MongoEngine λειτουργεί πολύ παρόμοιο με το ενσωματωμένο ORM του Django. Στην τελευταία έξοδο, όταν ρωτήσαμε ένα τραγούδι, παρατηρήστε πώς αναφέρεται η αναφορά ενός άλλου εγγράφου για το πεδίο του άλμπουμ.
Τώρα ας δημιουργήσουμε ένα άλλο άλμπουμ και να πραγματοποιήσουμε μια ενημέρωση στο υπάρχον έγγραφο τραγουδιού.
>>> from app.models import Album, Song >>> album2 = Album(name='Album2') >>> album2.save() >>> songs_q = Song.objects(title='Song1') # query the database >>> songs_q.count() 1 >>> song1 = songs_q(0) >>> song1.album = album2 # update the album field >>> song1.save()
Εισάγουμε και τα δύο μοντέλα, δηλαδή άλμπουμ και τραγούδι. Στη συνέχεια, δημιουργήστε ένα νέο έγγραφο που ονομάζεται άλμπουμ2. Ερώτηση συλλογής τραγουδιών στη βάση δεδομένων και λήψη του τραγουδιού χρησιμοποιώντας τον τίτλο του. Στη συνέχεια, έχουμε πρόσβαση στο αντικείμενο χρησιμοποιώντας ένα ευρετήριο πίνακα του αποτελέσματος του ερωτήματος, ενημερώνουμε χρησιμοποιώντας έναν χειριστή ανάθεσης και αποθηκεύουμε το ενημερωμένο έγγραφο.
Τώρα ας χρησιμοποιήσουμε ξανά τον πελάτη Mongo για να ελέγξουμε τις αποθηκευμένες συλλογές.
> db.album.find().pretty() ## output { '_id' : ObjectId('5eddb43b8b1e179bef87d41d'), 'name' : 'Album1' } { '_id' : ObjectId('5eddbaab9fd7d3ec78b2fd8f'), 'name' : 'Album2' } > db.song.find().pretty() ## output { '_id' : ObjectId('5eddb74b0177c8f096d880ec'), 'title' : 'Song1', 'rating' : 9, 'album' : ObjectId('5eddbaab9fd7d3ec78b2fd8f') }
Στην έξοδο του δεύτερου ερωτήματος στο παραπάνω απόσπασμα, παρατηρήστε το ενημερωμένο πεδίο άλμπουμ του εγγράφου Song1.
Τώρα ας διαγράψουμε τα έγγραφα τόσο στη συλλογή άλμπουμ όσο και στη συλλογή τραγουδιών. Χρησιμοποιήστε τον παρακάτω κωδικό για να καταργήσετε τις εγγραφές. Εάν εξακολουθείτε να βρίσκεστε στο κέλυφος της φιάλης, χρησιμοποιήστε τις παρακάτω εντολές για να διαγράψετε ένα έγγραφο και να επαληθεύσετε τη διαγραφή.
>>> song1.delete() >>> songs_q = Song.objects(title='Song1') >>> songs_q.count() 0 >>>
Χρησιμοποιούμε τη μέθοδο διαγραφής στο song1 για να διαγράψουμε το έγγραφο από τη συλλογή τραγουδιών. Θα μπορούσαμε να εκτελέσουμε όλες τις βασικές λειτουργίες CRUD χρησιμοποιώντας ένα κέλυφος φιάλης. Επιπλέον, μπορούμε να χρησιμοποιήσουμε την κλάση ModelView του flask_appbuilder για να εμφανίσουμε τα μοντέλα βάσης δεδομένων ως προβολές.
Δημιουργήστε προβολές βάσει μοντέλου, όπως φαίνεται στον παρακάτω κώδικα.
from app.models import Album, Song from flask_appbuilder import ModelView from flask_appbuilder.models.mongoengine.interface import MongoEngineInterface class SongsView(ModelView): datamodel = MongoEngineInterface(Song) class AlbumView(ModelView): datamodel = MongoEngineInterface(Album)
Πρώτα εισάγουμε τα μοντέλα βάσης δεδομένων, μαζί με το ModelView και το MongoEngineInterface. Στη συνέχεια, υποκατηγορούμε το ModelView και εκχωρούμε συγκεκριμένες παρουσίες MongoEngineInterface στο χαρακτηριστικό μοντέλο δεδομένων των προβολών μας.
Τώρα ας καταχωρήσουμε το SongsView και το AlbumView στο μενού όπως φαίνεται παρακάτω στην ίδια κατηγορία.
appbuilder.add_view(AlbumView, 'Album View', category='Model Views') appbuilder.add_view(SongsView, 'Song View', category='Model Views')
Για να αποκτήσετε πρόσβαση σε αυτές τις προβολές στην εφαρμογή, μεταβείτε στη διεύθυνση http: // localhost: 8080 /, συνδεθείτε στην εφαρμογή χρησιμοποιώντας τα διαπιστευτήρια διαχειριστή και εκτελέστε τα παρακάτω βήματα για να κατανοήσετε τις προεπιλεγμένες προβολές βάσει μοντέλου βάσης δεδομένων.
Βήμα 1: Κάντε κλικ στο μενού Προβολή μοντέλου

Βήμα 2: Κάντε κλικ στο υπομενού Προβολή άλμπουμ.

Βήμα 3: Κάντε κλικ στο εικονίδιο συν για να δημιουργήσετε ένα έγγραφο ή μια εγγραφή.

Βήμα 4: Εισαγάγετε το όνομα του Άλμπουμ και αποθηκεύστε το.
Παρόμοια με τα παραπάνω βήματα, μπορείτε να εκτελέσετε όλες τις λειτουργίες CRUD χρησιμοποιώντας αυτές τις προβολές. Επομένως, ας δημιουργήσουμε ένα τραγούδι χρησιμοποιώντας το υπομενού Προβολή τραγουδιού, όπως φαίνεται στην παρακάτω εικόνα. Παρατηρήστε, πώς εμφανίζεται ένα πεδίο αναφοράς ενός σχετικού μοντέλου βάσης δεδομένων στο αναπτυσσόμενο μενού. Δοκιμάστε να δημιουργήσετε μερικά άλμπουμ και τραγούδια.

Μπορείτε να εξερευνήσετε περαιτέρω τις ίδιες έννοιες χρησιμοποιώντας το MongoAlchemy. Ένα άλλο εύκολο στη χρήση και παρόμοιο ORM που δημιουργήθηκε για εύκολη πρόσβαση και χειρισμό βάσεων δεδομένων MongoDB χρησιμοποιώντας το Python.
Ελέγξτε την τεκμηρίωση του MongoAlchemy εδώ . Ωστόσο, σας συνιστούμε να δημιουργήσετε μια βασική κατανόηση του Flask-SQLAlchemy πηγαίνοντας πρώτα στην παρακάτω ενότητα.
καλύτερο καθαριστικό μητρώου για τα Windows 7
Flask Sqlite ή Flask MySQL
Σε αυτήν την ενότητα, επαναχρησιμοποιούμε την ίδια εφαρμογή για το SQLAlchemy με τη μηχανή backend. Επομένως, δεσμεύστε όλες τις αλλαγές σας μέχρι τώρα και δημιουργήστε ένα ξεχωριστό φροντιστήριο Git Branch-3-sqla Η Flask μπορεί να χρησιμοποιήσει το SQLite και το MySQL ως βάση δεδομένων backend. Σας συνιστούμε να χρησιμοποιήσετε το SQLAlchemy ως ORM με αυτές τις σχετικές βάσεις δεδομένων.
Ας ξεκινήσουμε με τις αλλαγές που πρέπει να κάνουμε αφού ελέγξετε έναν νέο κλάδο.
Διαμόρφωση
Ανοίξτε το config.py στον ριζικό κατάλογο του έργου και καταργήστε τη συμβολοσειρά σύνδεσης του MongoDB. Ενημερώστε το config.py με τη συμβολοσειρά σύνδεσης για το Flask SQLite ή το Flask MySQL.
# The SQLAlchemy connection string. SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'app.db') # SQLALCHEMY_DATABASE_URI = 'mysql://myapp@localhost/myapp'
Εφαρμογή __init__.py
Τώρα ανοίξτε το αρχείο app / __ init__.py και απομακρυσμένες εισαγωγές που σχετίζονται με το MongoEngine και εισαγάγετε SQLA όπως φαίνεται παρακάτω.
#from flask_appbuilder.security.mongoengine.manager import SecurityManager from flask_appbuilder import AppBuilder, SQLA #from flask_mongoengine import MongoEngine # other lines of code #db = MongoEngine(app) db = SQLA(app) #appbuilder = AppBuilder(app, security_manager_class=SecurityManager) appbuilder = AppBuilder(app, db.session)
Μοντέλα φιάλης
Ενημερώστε το models.py με τον ακόλουθο κώδικα και καταργήστε τον κωδικό που σχετίζεται με το MongoEngine.
from flask_appbuilder import Model from sqlalchemy import Column, Integer, String, ForeignKey from sqlalchemy.orm import relationship
Προβολές φιάλης
Ενημερώστε το views.py με τον ακόλουθο κωδικό.
from flask_appbuilder import ModelView from app.models import Album, Song class AlbumView(ModelView): datamodel = SQLAInterface(Album) class SongsView(ModelView): datamodel = SQLAInterface(Song) appbuilder.add_view(AlbumView, 'Album View', category='Model Views') appbuilder.add_view(SongsView, 'Song View', category='Model Views')
Σημειώστε ότι έχουμε χρησιμοποιήσει την ίδια κλάση ModelView αλλά αλλάξαμε το MongoEngineInterface με το SQLAInterface.
Για να δημιουργήσουμε τους πίνακες και τις αντίστοιχες σχέσεις τους, εκτελούμε την παρακάτω εντολή για τη δημιουργία αντικειμένων βάσης δεδομένων.
flask fab create-db
Θυμηθείτε ότι έχουμε αλλάξει το backend της βάσης δεδομένων. Επομένως, χρησιμοποιήστε την εντολή create-admin flask fab για να δημιουργήσετε τον χρήστη διαχειριστή. Τώρα ξεκινήστε τον διακομιστή ανάπτυξης όπως νωρίτερα. χρησιμοποιώντας το python run.py. Μεταβείτε στη διεύθυνση http: // localhost: 8080.
Εδώ σε αυτό το σημείο, η εφαρμογή μας θα λειτουργήσει όπως λειτούργησε στην περίπτωση του MongoDB. Δοκιμάστε το με όλες τις λειτουργίες CRUD, όπως κάναμε στις προηγούμενες ενότητες.
Επιπλέον, έχουμε δείξει και τους δύο αντίστοιχους πίνακες για τα μοντέλα βάσης δεδομένων κατά τη χρήση του SQLite DB Browser.


Φιάλη MySQL
Για να χρησιμοποιήσετε το MySQL ως backend βάσης δεδομένων, όταν χρησιμοποιούμε το Flask-SQLAlchemy, πρέπει να ενημερώσουμε μόνο μία διαμόρφωση που αφορά τη βάση δεδομένων στο config.py.
SQLALCHEMY_DATABASE_URI = 'mysql://myapp@localhost/myapp'
Σύμφωνα με τη δεδομένη συμβολοσειρά σύνδεσης, το όνομα της βάσης δεδομένων είναι myapp. Ο χρήστης για σύνδεση με τη βάση δεδομένων είναι myapp @ localhost. Ωστόσο, και τα δύο είναι προαπαιτούμενα και πρέπει να δημιουργήσουμε χρησιμοποιώντας τις λεπτομέρειες που δίνονται παρακάτω.
Επομένως, χρησιμοποιήστε τα ερωτήματα που δίνονται παρακάτω για να δημιουργήσετε έναν χρήστη και μια βάση δεδομένων για να κάνετε τη βάση δεδομένων Flask MySQL να λειτουργεί σε συνδυασμό μεταξύ τους. Εκτελέστε αυτά τα ερωτήματα στον υπολογιστή-πελάτη MySQL.
CREATE USER 'myapp'@'localhost' IDENTIFIED BY ''; GRANT ALL PRIVILEGES ON *.* TO 'myapp'@'localhost'; FLUSH PRIVILEGES; CREATE DATABASE myapp;
Πρέπει επίσης να εγκαταστήσουμε το Python3 mysqlclient. Εγκαταστήστε κεφαλίδες ανάπτυξης και βιβλιοθήκες όπως δίνονται στις παρακάτω εντολές.
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential pip install mysqlclient
Τώρα επειδή έχουμε αλλάξει το backend της βάσης δεδομένων, πρέπει να δημιουργήσουμε πίνακες που αντιστοιχούν στα μοντέλα της βάσης δεδομένων. Πρέπει επίσης να δημιουργήσουμε έναν χρήστη διαχειριστή Flask καθώς όλα τα καταχωρημένα στοιχεία μενού προστατεύονται και είναι προσβάσιμα μόνο από έναν υπάρχοντα χρήστη στην εφαρμογή.
Αυτές οι εντολές που δίνονται παρακάτω κρύβουν τις δηλώσεις SQL χαμηλότερου επιπέδου για την απόθεση και τη δημιουργία πινάκων.
flask fab create-db flask fab create-admin
Με την επιτυχή ολοκλήρωση όλων των παραπάνω βημάτων, μπορούμε να περιηγηθούμε ξανά στη διεύθυνση http: // localhost: 8080. Τώρα αποκτήστε πρόσβαση στην εφαρμογή όπως αποκτήσαμε στην περίπτωση του Flask SQLite.
Μετεγκατάσταση φιάλης
Κατά την πρώιμη ανάπτυξη μιας εφαρμογής, υπάρχουν πολλές αλλαγές στο σχήμα μιας βάσης δεδομένων. Οι προγραμματιστές που προσθέτουν αρκετά γενικά έξοδα στο χρόνο ανάπτυξης πρέπει να κάνουν αυτές τις αλλαγές συχνά. Σε τέτοια παρόμοια σενάρια, η προσθήκη Flask-Migrate είναι αρκετά χρήσιμη.
Ας εγκαταστήσουμε το Flask-Migrate.
pip install flask-migrate
Κατά την επιτυχή εγκατάσταση, προστίθεται μια δευτερεύουσα εντολή db. Ελέγξτε τα βοηθητικά προγράμματα της γραμμής εντολών που προστίθενται σε αυτήν την υπο-εντολή db χρησιμοποιώντας τον παρακάτω κωδικό.
flask db --help
Αρχικά, πρέπει να δημιουργήσουμε ένα αντικείμενο μετεγκατάστασης, όπως φαίνεται παρακάτω στην εφαρμογή / __ init__.py.
from flask import Flask from flask_migrate import Migrate app = Flask(__name__) migrate = Migrate(app, db)
Ας δοκιμάσουμε μερικές εντολές με τη βάση δεδομένων που έχουμε στην εφαρμογή μας.
Αρχικοποιήστε ένα ξεχωριστό αποθετήριο μετεγκατάστασης.
flask db init
Παρόμοια με τις παραπάνω εντολές, υπάρχουν εντολές για τη δημιουργία μετεγκαταστάσεων και την εφαρμογή τους χρησιμοποιώντας την εντολή αναβάθμισης. Θα χρησιμοποιήσουμε αυτές τις εντολές μετεγκατάστασης ως μέρος της ροής εργασίας στα επόμενα σεμινάριά μας όποτε απαιτείται.
Συχνές Ερωτήσεις
Μπορεί να συναντήσετε μερικές από τις ερωτήσεις που σχετίζονται με τη χρήση βάσεων δεδομένων με το Flask.
Ε # 1) Ποια βάση δεδομένων χρησιμοποιεί το Flask;
Απάντηση: Το Flask υποστηρίζει όλες τις βάσεις δεδομένων που υποστηρίζονται από το SQLAlchemy, το οποίο είναι μια εργαλειοθήκη βάσεων δεδομένων για το Python και είναι ένα ORM (Object Relation Mapper). Μπορούμε να εγκαταστήσουμε το Flask-SQLAlchemy από το PyPI για να συνεργαστούμε με το SQLAlchemy.
Το Flask-Alchemy είναι ένα πρόσθετο Flask και απαιτεί ελάχιστη διαμόρφωση εκτός από την εγκατάστασή του. Ορισμένες από τις επικρατούσες βάσεις δεδομένων που χρησιμοποιούν οι προγραμματιστές με το Flask-SQLAlchemy είναι SQLite, PostgreSQL, MySQL κ.λπ.
Το Flask διαθέτει επίσης πρόσθετα όπως το Flask-MongoEngine, το Flask-MongoAlchemy, το Flask-CouchDB κ.λπ. για να συνεργαστεί με βάσεις δεδομένων που βασίζονται σε έγγραφα NoSQL όπως το MongoDB και το CouchDB.
Q # 2) Πώς μπορώ να δημιουργήσω μια βάση δεδομένων στο Flask;
Απάντηση: Η δημιουργία μιας βάσης δεδομένων στο Flask εξαρτάται γενικά από το μοτίβο που ακολουθείται από το αντίστοιχο πρόσθετο Flask. Σχεδόν όλα τα πρόσθετα δημιουργούν βάσεις δεδομένων με βάση τις ρυθμίσεις σύνδεσης βάσης δεδομένων που ορίζονται στη διαμόρφωση Flask στο έργο.
Ωστόσο, μπορείτε να γράψετε τη δική σας μέθοδο για να δημιουργήσετε μια βάση δεδομένων στο Flask όταν δεν χρησιμοποιείτε μια προσθήκη.
Δώσαμε ένα ασήμαντο παράδειγμα δημιουργίας ενός παραδείγματος SQLite παρακάτω. Αυτό το παράδειγμα χρησιμοποιεί g Object για να διατηρήσει την αναφορά της βάσης δεδομένων σύνδεσης.
ποιο είναι το καλύτερο spyware για κινητά τηλέφωνα
import sqlite3 from flask import g # g and current_app object current_app.config('DATABASE') = 'MYDB' # Name of the database def get_db(): '''A method to get the database connection''' if 'db' not in g: g.db = sqlite3.connect( current_app.config('DATABASE'), detect_types=sqlite3.PARSE_DECLTYPES ) g.db.row_factory = sqlite3.Row return g.db def close_db(e=None): '''A method to close the database connection''' db = g.pop('db', None) if db is not None: db.close()
Q # 3) Πώς προβάλλετε δεδομένα από μια βάση δεδομένων στο Flask;
Απάντηση: Στο Flask, οι προγραμματιστές χρησιμοποιούν διάφορους Object Relational Mappers, που ονομάζονται επίσης ORM. Αυτά τα ORM έχουν γενικά API για πρόσβαση στη βάση δεδομένων χρησιμοποιώντας το χαρακτηριστικό ερωτήματος για την ανάγνωση των δεδομένων από ένα καθορισμένο μοντέλο βάσης δεδομένων. Τα αποτελέσματα των ερωτημάτων που αποθηκεύονται στις δομές δεδομένων της Python εμφανίζονται με τη βοήθεια των προτύπων Flask.
Ωστόσο, κατά τη δοκιμή των μοντέλων βάσης δεδομένων, τα αποτελέσματα μπορούν επίσης να εκτυπωθούν στην Κονσόλα στο Flask Shell.
Ένα τέτοιο παράδειγμα ερωτήματος των δεδομένων χρησιμοποιώντας το API ερωτημάτων στο Flask-SQLAlchemy δίνεται παρακάτω.
>>> user1 = User.query.filter_by(username='testuser').first() >>> user1.id 2 >>> user1.email u'user1@example.org'
συμπέρασμα
Σε αυτό το σεμινάριο, καλύψαμε έννοιες που σχετίζονται με τη σύνδεση σε διαφορετικές βάσεις δεδομένων χρησιμοποιώντας την ίδια διάταξη έργου. Απομακρυνθήκαμε από το παράδειγμα της σύνταξης ακατέργαστων ερωτημάτων SQL μέσα στον κώδικα.
Μια προσέγγιση για τη σύνταξη πινάκων με τη μορφή μοντέλων μας κάνει πιο ευέλικτους. Καλύψαμε επίσης τις έννοιες της αποθήκευσης πληροφοριών βάσης δεδομένων ως μετεγκαταστάσεις. Οι μεταναστεύσεις προσθέτουν επιπλέον περισσότερη ευελιξία στη ροή εργασιών ανάπτυξης.
Μέχρι στιγμής, έχουμε εργαστεί σε ένα αρχέτυπο που δημιουργείται αυτόματα από το πρόγραμμα δημιουργίας εφαρμογών Flask. Στα επόμενα σεμινάρια αυτής της σειράς, κάνουμε ένα ακόμη βήμα και συζητάμε για τις άλλες πλάκες λέιζερ Flask και τις έννοιες της εργασίας με τα σχεδιαγράμματα Flask.
=> Ελέγξτε ΟΛΟΥΣ τα Εκπαιδευτικά Φιάλη Εδώ
Συνιστώμενη ανάγνωση
- Εκμάθηση Python Flask - Εισαγωγή στη φιάλη για αρχάριους
- Flask API Tutorial με παράδειγμα | Επέκταση φιάλης με API
- Flask App και Flask Project Layout με Blueprint & Bootstrap
- Κορυφαίες 31 δημοφιλείς ερωτήσεις συνέντευξης Python Flask με απαντήσεις
- Κορυφαία 10 εργαλεία σχεδίασης βάσεων δεδομένων για τη δημιουργία σύνθετων μοντέλων δεδομένων
- Οδηγός δημιουργίας βάσης δεδομένων MongoDB
- MongoDB Δημιουργία αντιγράφων ασφαλείας βάσης δεδομένων