Ανάπτυξη διαδικτυακών εφαρμογών με την Python Το εργαλείο Flask Το Flask είναι ένα micro περιβάλλον για την ανάπτυξη διαδικτυακών εφαρμογών με βάση τη γλώσσα Python. Micro σημαίνει ότι περιλαμβάνει τις βασικές λειτουργικότητες και αφήνει πιο σύνθετες λειτουργίες όπως η αυθεντικοποίηση σε πρόσθετα (extensions), σε αντίθεση με πιο σύνθετα περιβάλλοντα όπως το Django που διαθέτουν ένα ολοκληρωμένο σύνολο λειτουργιών χωρίς να απαιτούνται πρόσθετα. Αναλυτικές οδηγίες στο διαδίκτυο για το Flask μπορείτε να βρείτε και εδώ https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world https://www.amazon.com/flask-example-gareth-dwyer-ebook/dp/b019op7jj6 (ebook) Μέρος Α Εγκατάσταση του Flask Αρχικά, γίνεται η εγκατάσταση της Python (έκδοση 3.x) ώστε να έχει εγκατεστημένο τον Python package manager (pip). Η τρέχουσα έκδοση είναι η 3.6.1. Δημιουργείστε ένα νέο φάκελο flask_project και τρέξτε το παρακάτω: Η παραπάνω εντολή θα δημιουργήσει μια προεγκατάσταση των αρχείων του flask. ένα τοπικό virtual folder με όλα τα αρχεία του flask εγκατεστημένα. Ακολουθεί η εντολή Η παραπάνω εντολή θα δημιουργήσει ένα virtual folder με όλα τα αρχεία του flask εγκατεστημένα. Στη συνέχεια ακολουθούν οι εντολές: flask\scripts\pip install flask flask\scripts\pip install requests flask\scripts\pip install feedparser
Με τις παραπάνω εντολές, γίνεται η εγκατάσταση των πρόσθετων (extensions) που είναι απαραίτητα για την εφαρμογή που θα αναπτύξουμε παρακάτω. Στη συνέχεια εκτελέστε τα παρακάτω: Μέσα στον φάκελο app φτιάξτε ένα νέο αρχείο init.py με τα παρακάτω:
Μέσα στο φάκελο app φτιάξτε ένα αρχείο views.py με τα παρακάτω Μέσα στο φάκελο flask_project φτιάξτε το αρχείο run.py με τα παρακάτω:
Ξεκινήστε την εφαρμογή γράφοντας Και δείτε το αποτέλεσμα στον browser σας Τώρα σκέφτεστε ότι κάναμε τόσα βήματα για ένα απλό μήνυμα στην οθόνη Λίγο υπομονή και το Flask θα μας ανακαλύψει τα μυστικά του! Μέρος Β Ανάπτυξη εφαρμογής για διάβασμα rss feeds Το RSS προέρχεται από τις λέξεις Really Simple Syndication και είναι μία τεχνολογία που χρησιμοποιεί την XML και επιτρέπει στους δικτυακούς τόπους να δημιουργούν ροές μηνυμάτων για να λαμβάνουμε τα τελευταία νέα και εξελίξεις. Μια ροή δεδομένων αποτελεί μια περίληψη περιεχομένου Web που ενημερώνεται τακτικά, η οποία συνοδεύεται από συνδέσμους σε πλήρεις εκδόσεις του συγκεκριμένου περιεχομένου.
Για να δημιουργήσουμε μια εφαρμογή διαβάσματος RSS feeds, θα τροποποιήσουμε το init.py να δείχνει το αρχείο views_b.py: Δημιουργείστε το template_b.html στον φάκελο templates:
Επανα-εκτελέστε την εφαρμογή: Αντικαταστήστε τα views_b.py και template_b.html με τα views2.py και template2.html αντίστοιχα, αλλάζοντας αντίστοιχα και το init.py. Αντικαταστήστε τα views2.py και template2.html με τα views3.py και template3.html αντίστοιχα αλλάζοντας το init.py.
Αντικαταστήστε τα views3.py και template3.html με τα views4.py και template4.html αντίστοιχα αλλάζοντας το init.py.
Αντικαταστήστε τα views4.py και template4.html με τα views5.py και template5.html αντίστοιχα αλλάζοντας το init.py.
Μέρος Γ Ανάπτυξη διαδικτυακής χαρτογραφικής εφαρμογής μέσω flask και leaflet. Θα αναπτύξουμε μια διαδικτυακή εφαρμογή με βάση το Flask. Η εφαρμογή θα εμφανίζει μια σειρά από μετεωρολογικές συνθήκες όπως θερμοκρασία, ταχύτητα ανέμου και διεύθυνση ανέμου για μια σειρά από επιλεγμένους προορισμούς καθώς και για την τρέχουσα τοποθεσία του χρήστη. Αρχικά, δημιουργείστε λογαριασμό στο https://www.wunderground.com/ Στη συνέχεια, εξερευνήστε τις παρακάτω σελίδες για να δείτε πώς μπορώ να χρησιμοποιήσω το Wunderground API για την ανάπτυξη εφαρμογών.
Αντικαταστήστε τα views5.py και template5.html με τα views6.py και map1.html αντίστοιχα αλλάζοντας το init.py.
Στη συνέχεια, δημιουργείστε λογαριασμό στο www.mapbox.com για την ενσωμάτωση του χαρτογραφικού υποβάθρου. Η εφαρμογή θα αναπτυχθεί με τη βοήθεια της βιβλιοθήκης leaflet.
Αντικαταστήστε τα views6.py και map1.html με τα views7.html και map2.html αντίστοιχα αλλάζοντας το init.py.
Δημιουργία διαδικτυακής εφαρμογής μέσω Flask και MySQL Ακολουθείστε τα επόμενα βήματα για την εγκατάσταση του MySQL Server και MySQL Workbench. Στο τοπικό μας μηχάνημα θα εγκαταστήσουμε ένα MySQL Server και το εργαλείο σύνδεσης και διαχείρισης των βάσεων (Workbench). Windows (x86, 32-bit), MSI Installer
Σε περίπτωση σφάλματος εγκατάστασης του MySQL Workbench, πρέπει να γίνει εγκατάσταση του παρακάτω πακέτου (Visual C++ Redistributable for Visual Studio 2015). Στη συνέχεια, ενεργοποιήστε το Workbench και συνδεθείτε στη βάση δεδομένων. Στον φάκελο του flask Project, ενεργοποιήστε το παρακάτω flask\scripts\pip install pymysql Δημιουργείστε τα αρχεία db_setup.py import pymysql import db_config connection = pymysql.connect(host='localhost', user=db_config.db_user, passwd=db_config.db_password) try: with connection.cursor() as cursor: sql = "CREATE DATABASE IF NOT EXISTS CustomersDB" cursor.execute(sql) sql = """CREATE TABLE IF NOT EXISTS CustomersDB.customers ( id int NOT NULL AUTO_INCREMENT, name VARCHAR(50), address VARCHAR(50), telephone VARCHAR(50), PRIMARY KEY (id) )""" cursor.execute(sql); connection.commit() finally: connection.close() db_config.py db_user = "<your_username>" db_password = "<your_password>" Στη συνέχεια εκτελέστε το παρακάτω: flask\scripts\python.exe db_setup.py
Κάντε refresh στη βάση για να δείτε τις αλλαγές. Δημιουργείστε το αρχείο dbhelper.py import pymysql import db_config class DBHelper: def connect(self, database="customersdb"): return pymysql.connect(host='localhost', user=db_config.db_user, passwd=db_config.db_password, db=database) def get_all_inputs(self): connection = self.connect() try: query = "SELECT name, address, telephone FROM customers WHERE name IS NOT null;" with connection.cursor() as cursor: cursor.execute(query) return cursor.fetchall() finally: connection.close() def add_input(self, name, address, telephone): print("{}{}{}".format(name, address, telephone)) connection = self.connect() try: query = "INSERT INTO customers (name, address, telephone) VALUES (%s,%s,%s)" data = (name, address, telephone) with connection.cursor() as cursor: cursor.execute(query, data) connection.commit() finally: connection.close() Αντικαταστήστε τα views7.py και map2.html με τα allusers.py και allusers.html αντίστοιχα αλλάζοντας το init.py. Προσθέστε και το adduser.html στο φάκελο templates.
Εργασία Ανάπτυξη διαδικτυακής εφαρμογής για τα μέλη του Πανεπιστημίου Αιγαίου Στην εργασία σας, καλείστε να δημιουργείστε μια εφαρμογή στη λογική του τηλεφωνικού καταλόγου του Πανεπιστημίου Αιγαίου Οι παρακάτω εικόνες δείχνουν και τις λειτουργίες της εφαρμογής 1)Αναζήτηση
2) Εμφάνιση όλων των μελών 3) Προσθήκη μέλους