flask design patterns
Αυτό το σεμινάριο εξηγεί μερικά από τα κοινά πρότυπα σχεδίασης και τις βέλτιστες πρακτικές Flask που πρέπει να ακολουθείτε κατά το σχεδιασμό εφαρμογών ιστού με παραδείγματα:
Ο σχεδιασμός εφαρμογών είναι μια ουσιαστική πτυχή της ανάπτυξης λογισμικού. Ένας μη προγραμματισμένος σχεδιασμός εφαρμογών οδηγεί σε ανυπέρβλητο τεχνικό χρέος. Επομένως, όποτε θέλουμε να κλιμακώσουμε την εφαρμογή μας, τότε είναι εντάξει να δοκιμάζουμε δοκιμασμένα πρότυπα σχεδίασης χρόνου.
Η κοινότητα του Flask έχει πολλά τέτοια παραδείγματα που μπορούν να σας εμπνεύσουν και να επηρεάσουν τις αποφάσεις σχεδιασμού σας όταν θέλετε να δοκιμάσετε μερικά μοτίβα για την εφαρμογή σας. Η φιάλη είναι τόσο απροσδιόριστη και ευέλικτη που μπορεί να θέλετε να συνδυάσετε έννοιες από τα υπάρχοντα μοτίβα και να δημιουργήσετε ένα νέο.
=> Επισκεφθείτε εδώ για να μάθετε τη φιάλη από το μηδέν
Τι θα μάθετε:
Σχέδια φιάλης
Για παράδειγμα, Θα βρείτε πολλά παραδείγματα από το μοτίβο MVC έως το μοτίβο Εφαρμογών μίας σελίδας στο SAAS. Ονομάζετε το πρότυπο σχεδίασης και ήδη δοκιμάστηκε από κάποιον στην κοινότητα και είναι ελεύθερα διαθέσιμο για να δοκιμάσετε τα χέρια σας.
Παρατίθενται παρακάτω μερικά από τα αποθετήρια που αξίζει να δείτε.
Flusk
Το Flusk είναι ένα παράδειγμα που μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε μεγάλες εφαρμογές Flask που περιλαμβάνουν SQLAlchemy, Docker και Nginx. Έχει έναν όμορφο διαχωρισμό λογικής για τη δημιουργία backend, τομέα, προβολών και μοντέλων στα αντίστοιχα επίπεδα.
Έχει εξαιρετική χρήση των Flask Blueprints και ακολουθεί το εργοστασιακό σχέδιο. Είναι εύκολο να δημιουργήσετε επεκτάσεις στο Flusk και είναι ακόμη πιο εύκολο να εμπορευματοποιήσετε την εφαρμογή χρησιμοποιώντας το Docker. Ρίξτε μια ματιά στον πηγαίο κώδικα εδώ .
Φιάλη Cookiecutter
Το Cookiecutter Flask είναι ένα πρότυπο φιάλης με δυνατότητες όπως ομαδοποίηση στοιχείων και ελαχιστοποίηση με ιστοσελίδες. Διαθέτει πρότυπα εκκίνησης για εγγραφή / έλεγχο ταυτότητας χρήστη και είναι ενσωματωμένο στο Bootstrap 4.
Το Cookiecutter είναι ένα βοηθητικό πρόγραμμα γραμμής εντολών για τη δημιουργία ενός έργου πακέτου Python. Αυτό σημαίνει ότι εάν χρησιμοποιείτε αυτό το πρότυπο, μπορείτε να δημοσιεύσετε την εφαρμογή Flask και ως PyPI. Αυτό το έργο βρίσκεται υπό ανάπτυξη.
Αξίζει να αξιολογηθεί στο αυτός ο σύνδεσμος .
Φιάλη πλήρης
Το Flask full είναι ένα ακόμη ισχυρό βραστήρα που χρησιμοποιεί Celery, MongoEngine, Signals, Shell εντολές, WebSocket και eventlet. Είναι αρκετά καλά ενσωματωμένο με τα έγγραφα Swagger API και τα έγγραφα Sphinx.
Αξιολογήστε αυτό το έργο ως πηγή του. Είναι ελεύθερα διαθέσιμο εδώ .
Φλάσκυ
Για τη δημιουργία ελαφρών εφαρμογών, ίσως θελήσετε να εξετάσετε το Flasky. Ο πηγαίος κώδικας του Flasky είναι διαθέσιμος εδώ . Αυτό το αποθετήριο δημιουργήθηκε από τον Miguel Grinberg, ο οποίος έχει πάνω από 25 χρόνια εμπειρίας στην ανάπτυξη ιστού.
Δημιούργησε τον Φλάσκυ για να παρέχει παραδείγματα κώδικα για τις έννοιες που συζητήθηκαν στο βιβλίο του που ονομάζεται Ανάπτυξη Web Flask .
Όποια και αν είναι, Πλαίσιο ή πρότυπο που επιλέγετε, όλα αυτά έχουν κάποια τυπικά χαρακτηριστικά και μιλούν για αυτά με τους δικούς τους τρόπους. Εδώ παραθέτουμε μερικές από αυτές τις λειτουργίες και τις συζητάμε και τις εφαρμόζουμε με τη χρήση του Flask-Appbuilder στην εφαρμογή δείγματος αυτής της σειράς σεμιναρίων.
Αυτό το σεμινάριο συζητά μερικά πιο κοινά μοτίβα που θα βρείτε σχεδόν σε όλες τις εφαρμογές ιστού σήμερα και είναι ωραίο να έχετε στο κιτ ενός προγραμματιστή ιστού.
Παράδειγμα σύνδεσης φιάλης
Μια εφαρμογή Ιστού συνήθως απαιτεί από τους Χρήστες να εγγράφονται και να έχουν πρόσβαση στο περιορισμένο τμήμα της εφαρμογής βάσει των εκχωρημένων δικαιωμάτων. Οι χρήστες έχουν ρόλους βάσει άδειας. Για παράδειγμα, ένας δημόσιος χρήστης δεν έχει άδεια δημιουργίας άλλου χρήστη. Ωστόσο, ένας χρήστης Διαχειριστής έχει αυτά τα δικαιώματα.
Μερικές φορές, οι εφαρμογές Ιστού αυτοματοποιούν την εγγραφή χρήστη και τη δημιουργία χρηστών, εκχωρώντας τους τα προεπιλεγμένα ή προκαθορισμένα δικαιώματα.
Δημιουργία χρήστη εκτός σύνδεσης
Ας δημιουργήσουμε έναν χρήστη χρησιμοποιώντας την εντολή create-user της φιάλης fab. Μόλις χρησιμοποιήσετε αυτήν την εντολή, θα λάβετε προτροπές γραμμής εντολών για να δώσετε τις λεπτομέρειες του λογαριασμού χρήστη. Δώστε τις λεπτομέρειες παρόμοιες με αυτές που εμφανίζονται παρακάτω και ο Χρήστης σας έχει δημιουργηθεί.
Role (Public): Username: user1 User first name: User1 User last name: Last1 Email: user1@sthwebsite.com Password: Repeat for confirmation: ## various logs 2020-06-21 13:55:01,053:INFO:flask_appbuilder.security.sqla.manager:Added user user1 User user1 created.
Παρατηρήστε ότι στο τέλος της εξόδου εντολών, το sqla.manager εκτυπώνει μηνύματα επιβεβαίωσης για τη δημιουργία χρηστών.
Τώρα αποκτήστε πρόσβαση στην εφαρμογή και συνδεθείτε με τις λεπτομέρειες που μόλις εισαγάγατε. Εάν έχετε δημιουργήσει τον Χρήστη στη βάση δεδομένων παραγωγής, μεταφέρετε αυτές τις λεπτομέρειες στο άτομο για το οποίο δημιουργήσατε αυτόν τον λογαριασμό.
Μεταβείτε στη διεύθυνση http: // localhost: 8080 / login και θα δείτε τη φόρμα σύνδεσης όπως φαίνεται παρακάτω.

Μόλις συνδεθεί ο χρήστης1, ο χρήστης μπορεί να δει το μήνυμα καλωσορίσματος.

Δημιουργία διαδικτυακού χρήστη
Ίσως είναι αδύνατο να δημιουργήσουμε όλους τους χρήστες εκτός σύνδεσης. Επιπλέον, ενδέχεται να απαιτείται περισσότερη τεχνική εμπειρογνωμοσύνη για τη χρήση της εντολής δημιουργίας χρήστη της φιάλης fab στο περιβάλλον παραγωγής. Ίσως λάβετε μια απαίτηση να αφαιρέσετε κάποιο φόρτο εργασίας από έναν Διαχειριστή, ο οποίος τις περισσότερες φορές είναι επιφορτισμένος με τη δημιουργία χρήστη.
Επομένως, στο παράδειγμα της εφαρμογής ιστού, ας επιτρέψουμε στους χρήστες να εγγραφούν.
Χρησιμοποιούμε την υπηρεσία reCAPTCHA της Google για να αποτρέψουμε την πρόσβαση κακόβουλων παραγόντων σε περιορισμένα τμήματα της εφαρμογής.
Αρχικά, ας καταχωρίσουμε τον τομέα μας στην υπηρεσία reCAPTCHA της Google και αποκτήστε το κλειδί SITE και το κλειδί SECRET.
Βήμα 1: Εγκαταστήστε το Flask-Mail χρησιμοποιώντας την παρακάτω εντολή.
pip install Flask-Mail
Μεταβείτε στη διεύθυνση https://www.google.com/recaptcha/intro/v3.html και συνδεθείτε ως Διαχειριστής χρησιμοποιώντας τον Λογαριασμό σας Google.
Βήμα 2: Επιλέξτε τον τύπο του reCaptcha.

Βήμα 3: Δώστε τον τομέα για τον οποίο θέλετε να χρησιμοποιήσετε το reCaptcha της Google.
Επίσης, προσθέστε το localhost στη λίστα των επιτρεπόμενων τομέων για αυτό το κλειδί και αποδεχτείτε τους όρους και υποβάλετέ τους. Μπορείτε να το καταργήσετε αργότερα μετά την ανάπτυξη αυτής της δυνατότητας.
Βήμα 4: Σημειώστε το πλήκτρο SITE που είναι επίσης γνωστό ως δημόσιο κλειδί.

Βήμα 5: Σημειώστε το ΜΥΣΤΙΚΟ ΚΛΕΙΔΙ που είναι επίσης γνωστό ως ιδιωτικό κλειδί.

Μόλις σημειώσετε τα πλήκτρα όπως αναφέρθηκαν παραπάνω, είναι καλύτερο να τα αποθηκεύσετε σε ένα μέρος όπου αυτά μπορούν να παραπεμφθούν και να διαβαστούν στη διαμόρφωση. Για αυτό το σεμινάριο, έχουμε αποθηκεύσει τις τιμές ως μεταβλητές περιβάλλοντος ως SITE_KEY και SECRET_KEY.
Τώρα ανοίξτε το config.py και ενημερώστε το όπως φαίνεται παρακάτω.
# Will allow user self registration AUTH_USER_REGISTRATION = True# The default user self registration role AUTH_USER_REGISTRATION_ROLE = 'Public'# Config for Flask-WTF Recaptcha necessary for user registration RECAPTCHA_PUBLIC_KEY = os.environ.get('SITE_KEY', None) RECAPTCHA_PRIVATE_KEY = os.environ.get('SECRET_KEY', None) # Config for Flask-Mail necessary for user registration MAIL_PORT = 587 MAIL_USE_SSL = False MAIL_SERVER = 'smtp.gmail.com' MAIL_USE_TLS = True MAIL_USERNAME = 'sthtestmail@gmail.com' MAIL_PASSWORD = 'Passw0rdqwerty' MAIL_DEFAULT_SENDER = 'sthtestmail0@gmail.com'
Ίσως χρειαστεί να ενεργοποιήσετε λιγότερο ασφαλή πρόσβαση στον Λογαριασμό σας Google. Ενεργοποιήστε την πρόσβαση λογαριασμού στις παρακάτω διευθύνσεις URL εάν έχετε κολλήσει σε τυχόν προβλήματα που σχετίζονται με το ηλεκτρονικό ταχυδρομείο.

- https://accounts.google.com/DisplayUnlockCaptcha
- https://support.google.com/mail/?p=BadCredentials
Τώρα στη σελίδα Είσοδος, μπορούμε να δούμε ένα επιπλέον κουμπί Εγγραφής χρήστη. Μόλις κάνετε κλικ στην εγγραφή, μπορούμε να δούμε πολλά πεδία μαζί με την πρόκληση reCaptcha.

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

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

Διαχειριστής φιάλης
Εάν έχετε διαβάσει τα άλλα σεμινάρια σε αυτήν τη σειρά εκμάθησης Flask, τότε θα παρατηρήσετε ότι έχουμε επωφεληθεί από την ενσωματωμένη ασφάλεια που συνοδεύει το Flask-Appbuilder. Οι προβολές που προσθέσαμε χρησιμοποιώντας το add_view_no_menu δεν προστατεύονται. Ωστόσο, οι προβολές που προσθέσαμε με βάση τα DataModels προστατεύονται αυτόματα για έναν χρήστη Διαχειριστή.
Εναλλακτικά, θα μπορούσαμε να χρησιμοποιήσουμε το Flask-Admin, το οποίο ως επί το πλείστον θα είχε επιτύχει παρόμοιο αποτέλεσμα. Flask-Admin επίσης, ας καθορίσουμε τις προβολές με αντικειμενοστρεφή τρόπο. Μια ιστοσελίδα στο frontend αντιπροσωπεύει μια μέθοδο σε μια κλάση προβολής που προσθέτουμε ρητά στη διεπαφή.
Σε αυτό το σεμινάριο, δεν χρησιμοποιούμε το Flask-Admin. Αντ 'αυτού, ακολουθούμε το μονοπάτι για την επίτευξη των ίδιων αποτελεσμάτων με περισσότερη ταχύτητα και παραλείποντας την ανάγκη να γνωρίζουμε σχετικά με την ανάπτυξη ασφάλειας γύρω από τη σύνδεση, τους ελέγχους, τους ρόλους και τα δικαιώματα. Ήταν δυνατό καθώς χρησιμοποιήσαμε το Flask-Appbuilder.
Τόσο το Flask-Appbuilder όσο και το Flask-Admin έχουν τα πλεονεκτήματα και τα μειονεκτήματά τους. Στην περίπτωση του Flask-Admin, πρέπει να γνωρίζουμε ότι δεν υπάρχουν υπάρχουσες παραδοχές ασφαλείας και μπορείτε να δημιουργήσετε εφαρμογές βάσει του μοντέλου ασφαλείας σας. Για να μάθετε περισσότερα για το Flask-Admin, επισκεφθείτε εδώ και ακολουθήστε κατάλληλα παραδείγματα.
Μεταφόρτωση αρχείου Flask
Σχεδόν όλες οι διαδικτυακές εφαρμογές αυτές τις μέρες έχουν τις απαιτήσεις αποθήκευσης και εξυπηρέτησης αρχείων. Ένα τυπικό μοτίβο για αυτούς είναι η αποθήκευση των αρχείων σε μια διαδρομή στον διακομιστή, με ορισμένες πληροφορίες για τη λειτουργία του αποθηκευμένου αρχείου και τη διατήρηση σε μοντέλα εφαρμογών και προβολές.
Θα εργαστούμε σε ένα παρόμοιο παράδειγμα. Ας τροποποιήσουμε το μοντέλο τραγουδιού μας με πρόσθετες λειτουργίες.
Στο αρχείο models.py εισαγάγετε τον ακόλουθο κωδικό.
from flask import Markup, url_for from flask_appbuilder.models.mixins import FileColumn from flask_appbuilder.filemanager import get_file_original_name from flask_appbuilder import Model from sqlalchemy import Column, Integer, String, ForeignKey from sqlalchemy.orm import relationship class Song(Model): id = Column(Integer, primary_key=True) title = Column(String(200), nullable=False) rating = Column(Integer) album_id = Column(Integer, ForeignKey('album.id')) # for storing MP3 file of the song song_file = Column(FileColumn, nullable=False) album = relationship('Album') def __str__(self): return self.title def download(self): return Markup( ' Download ' ) def file_name(self): return get_file_original_name(str(self.song_file))
Έχουμε τροποποιήσει το μοντέλο Song που δημιουργήσαμε προηγουμένως προσθέτοντας μια νέα στήλη τύπου FileColumn. Επιπλέον, έχουμε προσθέσει δύο ακόμη στήλες που θα προστεθούν στο SongsView για να εμφανιστεί το Όνομα αρχείου και ένας σύνδεσμος για τη λήψη του μεταφορτωμένου αρχείου.
Η μέθοδος Flask url_for χρησιμοποιήθηκε μαζί με τη σήμανση για την εμφάνιση της Λήψης ως συνδέσμου. Επίσης, χρησιμοποιήσαμε τη μέθοδο get_file_original_name από το Flask-Appbuilder καθώς το όνομα του αρχείου αποθηκεύεται συνδυάζοντάς το με ένα UUID για να αποφευχθούν συγκρούσεις μεταξύ των ίδιων ονομάτων αρχείων.
Τροποποιήστε το view.py με τον παρακάτω κώδικα για να ενημερώσετε το αντίστοιχο SongsView.
class SongsView(ModelView): datamodel = SQLAInterface(Song) label_columns = {'file_name' : 'File Name', 'download': 'Download'} list_columns = ('title', 'file_name', 'download') show_columns = ('title', 'file_name', 'download')
Στην τάξη SongsView, έχουμε αναφέρει τις νέες ετικέτες που πρέπει να εμφανίζονται και θέλουμε να παραθέσουμε μόνο τις στήλες που αναφέρονται στην καθορισμένη λίστα.
Εδώ πρέπει να θυμάστε ότι έχουμε τροποποιήσει ένα μοντέλο βάσης δεδομένων προσθέτοντας μια στήλη στο μοντέλο. Ο αντίστοιχος πίνακας στη βάση δεδομένων δεν έχει αυτήν τη νέα στήλη. Επομένως, θα καταργήσουμε το αρχείο app.db, καθώς εργαζόμαστε στη βάση δεδομένων SQLite από το τελευταίο σεμινάριο.
Εναλλακτικά, θα μπορούσαμε επίσης να χρησιμοποιήσουμε την εντολή flask db migrate και να κάνουμε τις απαραίτητες αλλαγές στο αρχείο έκδοσης και να χρησιμοποιήσουμε την αναβάθμιση της φιάλης db για να ενημερώσουμε τον πίνακα. Ωστόσο, η αλλαγή που εισαγάγαμε είναι ελάχιστη και μπορούμε να δημιουργήσουμε ξανά τη βάση δεδομένων της εφαρμογής και τον χρήστη.
Συνιστούμε, κατά την παραγωγή, να εξετάσετε το ενδεχόμενο να χρησιμοποιήσετε τις εντολές Flask-Migrate κάθε φορά που κάνετε αλλαγές στο σχήμα βάσης δεδομένων της εφαρμογής σας.
Χρησιμοποιήστε τις παρακάτω εντολές για να καταργήσετε το αρχείο βάσης δεδομένων και να δημιουργήσετε ξανά τον χρήστη διαχειριστή.
rm app.db flask fab create-db flask fab create-admin
Τώρα συνδεθείτε στην εφαρμογή με τα διαπιστευτήρια διαχειριστή και θα δείτε το τροποποιημένο SongsView όπως φαίνεται στην παρακάτω εικόνα.

Προσθέστε ένα τραγούδι με ένα αρχείο.

Μόλις αποθηκεύσετε το αρχείο, οι στήλες στην Προβολή θα εμφανίζονται όπως φαίνεται παρακάτω.

Παρατηρήστε τις ακόλουθες τιμές στο config.py. Τα μεταφορτωμένα αρχεία θα αποθηκευτούν σε αυτήν τη διαδρομή στον διακομιστή. Για αυτό το σεμινάριο, θα μεταφορτωθεί στον υπολογιστή στον οποίο αναπτύσσουμε αυτό το δείγμα εφαρμογής.
Ελέγξτε τη διαδρομή μεταφόρτωσης, όπως αναφέρεται στο config.py. Τα αρχεία αποθηκεύονται με το UUID, όπως φαίνεται παρακάτω.

Φιάλη HTTPS
Όσον αφορά την ανάπτυξη, ενδέχεται να συνεχίσουμε να εκτελούμε την εφαρμογή Flask που εκτελείται χωρίς HTTPS. Από άποψη ασφάλειας, το HTTPS διασφαλίζει ότι η επικοινωνία πραγματοποιείται μεταξύ νόμιμου πελάτη και διακομιστή.
Αυτή η κρυπτογραφημένη επικοινωνία απαιτεί την καθιέρωση εμπιστοσύνης μεταξύ πελάτη και διακομιστή, χρησιμοποιώντας πιστοποιητικό με υπογραφή CA με ζεύγος δημόσιων και ιδιωτικών κλειδιών. Διαβάστε περισσότερα για αυτό εδώ
Σε αυτό το σεμινάριο, θα σας ενημερώσουμε για τις μεθόδους για την ανάπτυξη ιστότοπων που βασίζονται στη φιάλη χρησιμοποιώντας HTTPs κατά τη διάρκεια της ανάπτυξης.
Ο πιο γρήγορος και ευκολότερος τρόπος για να συμπεριλάβετε HTTPS κατά τη διάρκεια της ανάπτυξης είναι να χρησιμοποιήσετε ένα adhoc ssl_context, όπως αναφέρεται παρακάτω στο run.py. Ωστόσο, εγκαταστήστε το pyopenssl χρησιμοποιώντας pip στο περιβάλλον.
app.run(host='0.0.0.0', port=8080, debug=True, ssl_context='adhoc')
Αφού προσθέσετε το ssl_context, όταν μεταβείτε στο https: // localhost: 8080 /, θα λάβετε μια προειδοποίηση που δημιουργεί αμφιβολίες σχετικά με την εγκυρότητα του πιστοποιητικού που χρησιμοποιείται σε αυτήν την επικοινωνία. Επιπλέον, η πλοήγηση στο http: // localhost: 8080 / δεν θα λειτουργεί πια.
Επομένως, αυτή η προσέγγιση είναι λίγο δυσκίνητη και θα απαιτήσει να συνεχίσετε να αποδέχεστε αυτό το αίτημα κάθε φορά που κάνετε επανεκκίνηση του διακομιστή ανάπτυξης.
Πρέπει να κάνετε κλικ σε μη ασφαλή πρόσβαση για να συνεχίσετε να εργάζεστε, όπως φαίνεται παρακάτω.

Εναλλακτικά, για να αναπτύξουμε τις δυνατότητες https, μπορούμε να περάσουμε τη διαδρομή προς το πιστοποιητικό και να πληκτρολογήσουμε ένα Python Tuple στην παράμετρο ssl_context στη μέθοδο εκτέλεσης. Ωστόσο, για να υιοθετήσετε αυτήν την προσέγγιση, θα πρέπει να δημιουργήσετε ένα αυτο-υπογεγραμμένο πιστοποιητικό και ένα κλειδί χρησιμοποιώντας την παρακάτω εντολή.
openssl req -x509 -newkey rsa:4096 -nodes -out mycert.pem -keyout mykey.pem -days 365
Δώστε τις κατάλληλες τιμές για τα ερωτήματα.

Έχουμε αφήσει όλες τις προεπιλεγμένες τιμές. Τώρα σταματήστε τον διακομιστή ανάπτυξης και περάστε το πιστοποιητικό διαδρομής και τη διαδρομή κλειδιού όπως φαίνεται παρακάτω.
app.run(host='0.0.0.0', port=8080, debug=True, ssl_context=('mycert.pem', 'mykey.pem'))
Αυτή η προσέγγιση είναι επίσης παρόμοια με την προηγούμενη μέθοδο χρήσης του Adhoc ssl_context. Ωστόσο, σε αυτήν την περίπτωση, οι λεπτομέρειες παραμένουν για μεγαλύτερο χρονικό διάστημα. Αναφέραμε 365 ημέρες. Μπορείτε να καθορίσετε τη λήξη στις ημέρες που χρειάζεστε. Επιπλέον, αυτά τα αρχεία μπορούν να κοινοποιηθούν με τα άλλα μέλη της ομάδας εάν αναπτύσσετε μια ομάδα.
Στο περιβάλλον παραγωγής, τα πιστοποιητικά εκδίδονται από την ΑΠ και ο Miguel Grinberg συζητά ορισμένες περιπτώσεις χρήσης εδώ . Σας συνιστούμε να διαβάσετε περισσότερες λεπτομέρειες σε αυτήν τη σελίδα.
συμπέρασμα
Σε αυτό το σεμινάριο, έχουμε συζητήσει ορισμένα μοτίβα που ακολουθούν οι προγραμματιστές ιστού κατά την ανάπτυξη λειτουργιών που σχετίζονται με το Flask Login, το Flask Admin, το Flask File Upload και το Flask HTTPS. Παρέχουμε παραδείγματα κώδικα, και οι αναγνώστες μπορούν να το δοκιμάσουν επίσης.
Στο επόμενο σεμινάριό μας, θα καλύψουμε τις έννοιες της επέκτασης της φιάλης και θα δούμε πώς να δημιουργήσουμε λειτουργίες που βασίζονται σε API REST. Επιπλέον, θα συζητήσουμε πώς μπορούμε να χρησιμοποιήσουμε το Twitter API στο Flask.
πώς να επιστρέψετε πίνακες σε Java
=> Εξερευνήστε τη σειρά προπόνησης Flask εδώ
Συνιστώμενη ανάγνωση
- Σχέδια σχεδίων στην Ιάβα: Singleton, Factory and Builder
- Εκμάθηση Python Flask - Εισαγωγή στη φιάλη για αρχάριους
- Flask API Tutorial με παράδειγμα | Επέκταση φιάλης με API
- Flask App και Flask Project Διάταξη με σχεδιάγραμμα & Bootstrap
- Django Vs Flask Vs Κόμβος: Ποιο πλαίσιο πρέπει να επιλέξετε
- Κορυφαίες 31 δημοφιλείς ερωτήσεις συνέντευξης Python Flask με απαντήσεις
- Κορυφαία 10 εργαλεία σχεδίασης βάσεων δεδομένων για τη δημιουργία σύνθετων μοντέλων δεδομένων
- Κορυφαίες τάσεις 11 UI / UX Design: Τι να περιμένετε το 2021 και πέρα