Django είναι ένα δωρεάν και ανοικτού κώδικα web framework κατασκευασμένο σε Python. Κυκλοφόρησε για πρώτη φορά το 2005 και ενσωματώνει το σύνθημα «γρήγορη ανάπτυξη και καθαρός, πραγματιστικός σχεδιασμός». Το framework, που αναπτύσσεται σε έναν διακομιστή ιστού, μπορεί να παράγει γρήγορα ένα web front-end με πλούσια χαρακτηριστικά, ασφάλεια και επεκτασιμότητα.
Κάθε διαδικτυακή εφαρμογή βασίζεται σε βάσεις δεδομένων για το περιεχόμενό της. Το Django, όντας ένα σύγχρονο framework, υποστηρίζει μια σειρά από τυπικά προγράμματα βάσεων δεδομένων, για παράδειγμα, PostgreSQL, SQLite, MySQL, κ.λπ. Αυτός ο οδηγός θα δείξει πώς να συνδέσετε μια εφαρμογή Django σε μια βάση δεδομένων MySQL.
Προαπαιτούμενα
Για να παρακολουθήσετε αυτό το σεμινάριο, πρέπει να πληροίτε ορισμένες προϋποθέσεις πριν προχωρήσετε στο Django και τη σύνδεση της βάσης δεδομένων:
- Ένας κατάλληλος διακομιστής ιστού. Σε αυτόν τον οδηγό, θα χρησιμοποιήσουμε έναν διακομιστή Ubuntu.
- Ένα σωστά ρυθμισμένο περιβάλλον ανάπτυξης Python 3.
- Μια εφαρμογή βάσης δεδομένων. Εδώ είναι ένας αναλυτικός οδηγός για την εγκατάσταση και χρήση της MySQL.
Εγκατάσταση και ρύθμιση της Python 3
Το Django είναι γραμμένο σε Python. Η εκτέλεση οποιασδήποτε εφαρμογής Python απαιτεί την εγκατάσταση των εκτελέσιμων αρχείων της Python στο σύστημα. Το Ubuntu συνοδεύεται από προεγκατεστημένη την Python. Εδώ, θα χρησιμοποιήσουμε την Python 3. Από το τερματικό, εκτελέστε τις ακόλουθες εντολές. Αρχικά, ενημερώστε την προσωρινή μνήμη APT και αναβαθμίστε (εάν είναι διαθέσιμα) όλα τα εγκατεστημένα πακέτα:
|
1 |
$ sudo apt update && sudo apt upgrade -y |
Η Python 3 είναι άμεσα διαθέσιμη από τους επίσημους διακομιστές πακέτων του Ubuntu. Το πακέτο
python-is-python3 δημιουργεί έναν python δυαδικό συμβολικό σύνδεσμο (soft link) προς το
python3 για ευκολία στη χρήση:
|
1 |
$ sudo apt install python3 python-is-python3 |
Στη συνέχεια, επαληθεύστε εάν η εγκατάσταση ήταν επιτυχής:
|
1 2 |
$ python3 --version $ python --version |
Μετά από αυτό, χρειαζόμαστε το pip. Είναι ο τυπικός διαχειριστής πακέτων της Python. Είναι υπεύθυνος για τη διαχείριση πρόσθετων βιβλιοθηκών Python που δεν αποτελούν μέρος της τυπικής βιβλιοθήκης. Σημειώστε ότι εγκαθιστούμε το pip3 (για την Python 3):
|
1 |
$ sudo apt install python3-pip |
Τέλος, χρειαζόμαστε μερικά επιπλέον πακέτα για ένα ισχυρό περιβάλλον προγραμματισμού:
|
1 |
$ sudo apt install build-essential libssl-dev libffi-dev python3-dev |
Εγκατάσταση και ρύθμιση της MySQL
Αυτή η ενότητα θα δείξει εν συντομία την εγκατάσταση και τη ρύθμιση της MySQL. Είναι διαθέσιμη από τα προεπιλεγμένα αποθετήρια πακέτων του Ubuntu:
|
1 |
$ sudo apt install mysql-server |
Εάν η εγκατάσταση ήταν επιτυχής, τότε η MySQL θα αρχίσει να εκτελείται στο παρασκήνιο. Επαληθεύστε εάν λειτουργεί σωστά:
|
1 |
$ systemctl status mysql |
Ο διακομιστής MySQL είναι σε λειτουργία. Μπορούμε τώρα να μεταβούμε με ασφάλεια στην ανάπτυξη της εφαρμογής μας Django.
Εργασία με το Django
-
Δημιουργία της δείγματος εφαρμογής Django
Η προετοιμασία της διαδικτυακής μας εφαρμογής απαιτεί τον σκελετό του έργου Django. Περιέχει όλα τα απαραίτητα εργαλεία και βιβλιοθήκες που απαιτούνται για τη δημιουργία μιας ισχυρής διαδικτυακής εφαρμογής. Αρχικά, θα δημιουργήσουμε έναν αποκλειστικό κατάλογο για την εφαρμογή μας Django. Συνιστάται να ονομάσετε τον κατάλογο με κάτι ουσιαστικό και συνεπές με την εφαρμογή που πρόκειται να κατασκευάσουμε. Σε αυτήν την παρουσίαση, θα τον ονομάσουμε myDemoApp:
|
1 |
$ mkdir -pv myDemoApp |
Χρειαζόμαστε τη μονάδα (module) της Python venv για να δημιουργήσουμε ένα εικονικό περιβάλλον μέσα στον κατάλογο. Εγκαταστήστε τη μονάδα χρησιμοποιώντας το APT:
|
1 |
$ sudo apt install python3-venv |
Στη συνέχεια, μεταβείτε στον κατάλογο και δημιουργήστε ένα εικονικό περιβάλλον. Για σαφήνεια, ονομάσαμε το περιβάλλον demoapp_env:
|
1 |
$ python3 -m venv demoapp_env |
Στη συνέχεια, ενεργοποιήστε το εικονικό περιβάλλον εκτελώντας το activate σενάριο:
|
1 |
$ . demoapp_env/bin/activate |
Τώρα θα εγκαταστήσουμε το Django μέσα σε αυτό το αποκλειστικό εικονικό περιβάλλον. Pip θα κατεβάσει και θα εγκαταστήσει ορισμένα πρόσθετα στοιχεία:
|
1 |
$ pip install django |
Το Django είναι εγκατεστημένο και έτοιμο προς χρήση. Καλέστε την εντολή django-admin για να δημιουργήσετε ένα νέο έργο Django. Μετά από αυτό, δώστε στην εφαρμογή ένα κατάλληλο όνομα:
|
1 |
$ django-admin startproject demoapp |
Θα δημιουργήσει ένα δοκιμαστικό έργο (demo project) με τα απαραίτητα αρχεία και καταλόγους έργου στη θέση τους:
|
1 |
$ ls -l |
Ο σκελετός του έργου είναι έτοιμος. Στη συνέχεια, πρέπει να τον διαμορφώσουμε κατάλληλα για να επιτύχουμε τον στόχο μας.
-
Επεξεργασία ρυθμίσεων του έργου Django
Όλες οι ρυθμίσεις του έργου αποθηκεύονται στο αρχείο settings.py. Βρίσκεται μέσα στον κατάλογο του έργου Django. Θα ξεκινήσουμε ορίζοντας μια κατάλληλη ζώνη ώρας και θα καταγράψουμε τους κεντρικούς υπολογιστές (hosts) που μπορούν να συνδεθούν στην εφαρμογή Django. Ανοίξτε το αρχείο ρυθμίσεων σε έναν επεξεργαστή κειμένου:
|
1 |
$ nano ~/myDemoApp/demoapp/demoapp/settings.py |
Κυλήστε προς τα κάτω στο σενάριο κώδικα και βρείτε την καταχώριση TIME_ZONE. Για επίδειξη, η ζώνη ώρας έχει οριστεί σε America/New_York:
|
1 |
$ TIME_ZONE = 'America/New_York' |
Για αναφορά, η ακόλουθη εντολή θα εκτυπώσει όλες τις υποστηριζόμενες ζώνες ώρας στο Linux:
|
1 |
$ timedatectl list-timezones |
Στη συνέχεια, κυλήστε στην καταχώριση ALLOWED_HOSTS. Ελέγχει ποιοι υπολογιστές μπορούν να έχουν πρόσβαση στην εφαρμογή. Για επίδειξη, περιέχει μόνο το localhost:
|
1 |
$ ALLOWED_HOSTS = ['localhost'] |
Στη συνέχεια, αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή. Η επόμενη εντολή θα εφαρμόσει τις αλλαγές:
|
1 |
$ python manage.py migrate |
Τώρα, πρέπει να δημιουργήσουμε έναν λογαριασμό διαχειριστή (admin) για την εφαρμογή ιστού. Αυτός ο λογαριασμός θα χρησιμοποιηθεί για την πρόσβαση στη διεπαφή διαχειριστή του Django. Εκτελέστε την ακόλουθη εντολή:
|
1 |
$ python manage.py createsuperuser |
Θα ζητήσει όνομα χρήστη, email και κωδικό πρόσβασης. Η εφαρμογή είναι πλέον έτοιμη να συνδεθεί στη βάση δεδομένων.
Σύνδεση MySQL
-
Εγκατάσταση συνδέσμων MySQL και βιβλιοθηκών ανάπτυξης
Για να ενσωματώσουμε τη MySQL στην εφαρμογή Django, χρειαζόμαστε μερικές επιπλέον βιβλιοθήκες Python 3 που θα παρέχουν τα απαραίτητα εργαλεία. Θα χρησιμοποιήσουμε τον σύνδεσμο βάσης δεδομένων mysqlclient. Είναι μια διακλάδωση (fork) του MySQLdb.
Βεβαιωθείτε ότι έχουμε python3-dev εγκατεστημένο:
|
1 |
$ sudo apt install python3-dev |
Χρειαζόμαστε επίσης μερικές επιπλέον κεφαλίδες (headers) και βιβλιοθήκες Python και MySQL:
|
1 |
$ sudo apt install python3-dev libmysqlclient-dev default-libmysqlclient-dev |
Μετά την ολοκλήρωση της εγκατάστασης, χρησιμοποιήστε το pip για να εγκαταστήσετε το πρόσθετο (module) Python mysqlclient. Ενδέχεται να δημιουργήσει κάποια μηνύματα σφάλματος που μπορούν να αγνοηθούν:
|
1 |
$ pip install mysqlclient |
-
Διαμόρφωση αποκλειστικής βάσης δεδομένων
Το επόμενο βήμα είναι η διαμόρφωση μιας αποκλειστικής βάσης δεδομένων και ενός χρήστη βάσης δεδομένων για την εφαρμογή Django μας. Εκκινήστε το κέλυφος (shell) της MySQL ως χρήστης root:
|
1 |
$ sudo mysql -u root |
Για να ελέγξετε όλες τις τρέχουσες διαθέσιμες βάσεις δεδομένων, εκτελέστε το ακόλουθο ερώτημα:
|
1 |
$ SHOW DATABASES; |
Ας δημιουργήσουμε μια αποκλειστική βάση δεδομένων για την εφαρμογή Django μας. Δώστε της ένα κατάλληλο όνομα που να είναι συνεπές με το όνομα του έργου:
|
1 |
$ CREATE DATABASE demoapp_data; |
Στη συνέχεια, επαληθεύστε τη δημιουργία:
|
1 |
$ SHOW DATABASES; |
Τώρα, δημιουργήστε έναν αποκλειστικό χρήστη MySQL. Θα διαμορφώσουμε αυτόν τον χρήστη ως ιδιοκτήτη της βάσης δεδομένων. Η εφαρμογή Django θα χρησιμοποιεί τα διαπιστευτήρια αυτού του χρήστη για να λειτουργεί με τη βάση δεδομένων MySQL:
|
1 |
$ CREATE USER 'demoapp_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password123'; |
Δώστε στον χρήστη demoapp_user πλήρη δικαιώματα στη βάση δεδομένων demoapp_data:
|
1 |
$ GRANT ALL ON demoapp_data.* TO 'demoapp_user'@'%'; |
Για να τεθούν σε ισχύ οι αλλαγές δικαιωμάτων, επαναφορτώστε τους MySQL grant tables:
|
1 |
$ FLUSH PRIVILEGES; |
Η βάση δεδομένων είναι πλέον έτοιμη να συνδεθεί με την εφαρμογή Django.
-
Σύνδεση της βάσης δεδομένων στην εφαρμογή Django
Τέλος, θα διαμορφώσουμε την εφαρμογή Django ώστε να χρησιμοποιεί τη βάση δεδομένων για την αποθήκευση δεδομένων. Ανοίξτε το σενάριο ρυθμίσεων settings.py:
|
1 |
$ nano ~/myDemoApp/demoapp/demoapp/settings.py |
Κυλήστε προς τα κάτω στην καταχώριση DATABASES και εισαγάγετε τον ακόλουθο κώδικα:
|
1 2 3 4 5 6 7 8 |
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'OPTIONS': { 'read_default_file': '/etc/mysql/my.cnf', }, } } |
Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή. Το επόμενο βήμα είναι να ορίσετε το αρχείο ρυθμίσεων που περιγράφηκε στον κώδικα προηγουμένως. Χρησιμοποιήστε το sudo για να ανοίξετε το αρχείο κειμένου στην περιγραφόμενη τοποθεσία:
|
1 |
$ sudo nano /etc/mysql/my.cnf |
Αυτό το αρχείο ρυθμίσεων θα περιέχει πληροφορίες σχετικά με τη βάση δεδομένων που είναι αποκλειστική για το Django και τον χρήστη που δημιουργήσαμε στον διακομιστή MySQL. Προσθέστε τις ακόλουθες γραμμές στο τέλος του αρχείου:
|
1 2 3 4 5 |
[client] database = demoapp_data user = demoapp_user password = password123 default-character-set = utf8 |
Για να εφαρμοστούν οι αλλαγές, πρέπει να επανεκκινήσουμε τον διακομιστή MySQL:
|
1 2 |
$ sudo systemctl daemon-reload $ sudo systemctl restart mysql |
-
Δοκιμή της σύνδεσης MySQL
Τώρα είναι η ώρα να επαληθεύσετε εάν η σύνδεση MySQL λειτουργεί σωστά. Εάν ο διακομιστής Django εκτελείται χωρίς πρόβλημα, τότε η σύνδεση λειτουργεί καλά. Διαφορετικά, υπάρχει κάποιο πρόβλημα. Αρχικά, εφαρμόστε όλες τις αλλαγές που έγιναν στο έργο Django:
|
1 |
$ python manage.py migrate |
Τώρα, μεταβείτε στον ακόλουθο κατάλογο του έργου και εκκινήστε τον διακομιστή Django:
|
1 2 |
$ cd ~/myDemoApp/demoapp $ python manage.py runserver <server_ip_address>:8000 |
Στη συνέχεια, προσπαθήστε να αποκτήσετε πρόσβαση στον διακομιστή από ένα πρόγραμμα περιήγησης ιστού:
|
1 |
$ http://<server_ip_address>:8000 |
Voila! Φτάσαμε με επιτυχία στη σελίδα επιτυχίας του Django. Αυτό επιβεβαιώνει επίσης ότι η σύνδεση MySQL λειτουργεί σωστά. Αφού ολοκληρωθεί η εργασία, μπορείτε να εξέλθετε με ασφάλεια από το εικονικό περιβάλλον:
|
1 |
$ deactivate |
Τελικές Σκέψεις
Σε αυτόν τον οδηγό, μάθατε τα βασικά του συνδυασμού του Django και της MySQL μαζί. Δημιουργήσαμε μια εφαρμογή Django και δείξαμε πώς να τη συνδέσετε με μια βάση δεδομένων MySQL. Η μαγεία βρίσκεται μέσα στο αρχείο ρυθμίσεων του Django settings.py. Τροποποιήσαμε επίσης ορισμένες βασικές ρυθμίσεις όπως ALLOWED_HOSTS και TIME_ZONE. Το Django είναι απίστευτα ευέλικτο. Εκτός από τη MySQL, υποστηρίζει επίσης άλλους διακομιστές SQL όπως η PostgreSQL, μηχανές διακομιστή όπως το Nginx, κ.λπ.
Μπορείτε επίσης να δείτε τους οδηγούς μας σχετικά με τις βέλτιστες πρακτικές για την εγκατάσταση, τη ρύθμιση παραμέτρων και την εργασία με το Django:
- Εγκατάσταση του Django Web Framework σε Ubuntu 20.04
- Ρύθμιση του Django με PostgreSQL, Nginx και Gunicorn σε Ubuntu 20.04
- Δημιουργία Μοντέλων Django: Ένας Οδηγός
Καλή Υπολογιστική!





Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.