Ανάπτυξη διαδικτυακών εφαρμογών με την Python Το εργαλείο Flask

Σχετικά έγγραφα
10 η Διάλεξη Python Βάσεις δεδομένων στη python

databases linux - terminal (linux / windows terminal)

Συνοπτικός Οδηγός Χρήσης του MySQL Workbench

Σχεδιασμός Βάσεων Δεδομένων

NetBeans και σχετικά προγράμματα. Κακαρόντζας Γεώργιος Κέντρο Αριστείας Ανοιχτού Λογισμικού ΑΠΘ 1ο Θερινό Σχολείο Κώδικα

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Εργαστήριο Βάσεων Δεδομένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Βάσεις Δεδομένων Ι SQL Μέρος 3 ο. (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ

Περιγραφή του EcoTruck

Προγραμματισμός ΙΙ (Java) 6. Διαχείριση δεδομένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #2

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εργαστήριο Βάσεων Δεδομένων

Βάσεις Περιβαλλοντικών Δεδομένων

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση

Ανοικτά Ακαδημαϊκά Μαθήματα

Εισαγωγή στην Ανάπτυξη Εφαρμογών Web με Χρήση της Python, του Apache και του mod_python

Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές

Ηλεκτρονικοί Υπολογιστές II

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

Διαχείριση Πολιτισμικών Δεδομένων

Σχεδίαση και Χρήση Βάσεων Δεδομένων. Χρήση της MySQL. Γιώργος Πυρουνάκης -

Εργαστήριο Βάσεων Δεδομένων. Triggers

Η HTML χρησιμοποιεί εντολές που ονομάζονται HTML tags δίνοντας εντολές στους Web browsers για το πώς να εμφανίζουν την κάθε ιστοσελίδα.

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

5 η Διάλεξη Python - Αρχεία

Βασικές Εντολές SQL. Θεωρία & Εντολές SQL. Γραμμή Εντολών MS-DOS (MySQL)

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL


Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

Οδηγίες εγκατάστασης και χρήσης Java σε προσωπικό υπολογιστή

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 4ο Μάθημα: SQL - Παράδειγμα. Δρ. Κωνσταντίνος Χ.

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Εργαστήριο Βάσεων Δεδομένων

Εργαστήριο βάσεων δεδομένων. MySQL Stored Procedures

Τεχνολογία Πολιτισμικού Λογισμικού

Ανοικτά Ακαδημαϊκά Μαθήματα

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I)

Οδηγίες Χρήσης της MySQL

Android Studio για Windows

ιαδικασία εγκατάστασης - αναβάθµισης MS SQL Server 2014 Express Edition για SingularLogic Control, Accountant, Λογιστικά

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

Παράδειγμα Insert Update Delete Alter.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (2)

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Σχεδίαση και Χρήση Βάσεων Δεδομένων. Χρήση του DBDesigner. Γιώργος Πυρουνάκης - forky@di.uoa.gr

ΟΔΗΓΟΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ ΑΣΦΑΛΕΙΑΣ WEBMAIL ΤΕΙ ΚΑΛΑΜΑΤΑΣ

Τμήμα Πληροφορικής ΑΠΘ

PHPMyAdmin: Σύντομος οδηγός για αρχάριους

2 η Εργαστηριακή Άσκηση

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Ανάκτηση Δεδομένων (Information Retrieval)

Υπηρεσία διαμοιρασμού αρχείων

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 2

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Τεχνολογία Πολιτισμικού Λογισμικού

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : / id ot.com /

Ειδικά Θέματα Παραμετροποίησης 1. ΕΓΚΑΤΑΣΤΑΣΗ

Οδηγίες Χρήσης της MySQL

. Εργαστήριο Βάσεων Δεδομένων. Triggers

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

ARTius με PostgreSQL

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Smart Access Διαδικασία λειτουργίας

Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1

Epsilon Net PYLON Platform

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 3: Server Side Scripting II PHP & MySQL

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

ΤΕΙ Πελοποννήσου Τμήμα Πληροφορικής. Οδηγίες Εγκατάστασης VPN Σύνδεσης στο ΤΕΙ Πελοποννήσου

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

Εγκατάσταση του εκτυπωτή από το CD λογισμικού και τεκμηρίωσης

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Σχεδιασμός Βάσεων Δεδομένων

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #6

Hase οδηγίες χρήσης.

Κεφάλαιο 1. Εγκατάσταση και Περιβάλλον του SQL Server 2014

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση

Εγκατάσταση πιστοποιητικού για τη χρήση Ασφαλών Υπηρεσιών του Τμήματος Εκπαιδευτικής Υπολογιστικής Υποδομής.

Από τα Δεδομένα στην Πληροφορία: Διδακτικό Σενάριο για Εισαγωγή στη Γλώσσα SQL. Σ. Φίλου Β. Βασιλάκης

Τμήμα Διοίκησης Επιχειρήσεων

Transcript:

Ανάπτυξη διαδικτυακών εφαρμογών με την 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) Προσθήκη μέλους