Πώς να φτιάξετε τον δικό σας διακομιστή Python με το Raspberry Pi

Με απλά λόγια, το Raspberry Pi είναι ένας εξαιρετικά φθηνός (40 $) υπολογιστής Linux. Αυτό είναι. Σοβαρά.

Μπορεί να κάνει ό, τι μπορείτε να φανταστείτε ότι μπορεί να κάνει ένας κανονικός υπολογιστής Linux, όπως περιήγηση στον ιστό, σύνταξη κώδικα, επεξεργασία εγγράφων και σύνδεση με συσκευές I / O όπως μονάδα αντίχειρας, ποντίκι, πληκτρολόγιο κ.λπ. Αυτό το σεμινάριο θα επικεντρωθεί μαθαίνοντας πώς να φτιάξετε τον δικό σας διακομιστή Python με το Raspberry Pi.

Βήμα 0. Ορίστε τον στόχο

Πριν ξεκινήσουμε, είναι σημαντικό να καταλάβουμε τι είναι αυτό που προσπαθούμε να χτίσουμε. Μέχρι το τέλος του σεμιναρίου, θα μπορείτε να εκτελέσετε έναν βασικό ιστότοπο (χρησιμοποιώντας τη φιάλη) από ένα Raspberry Pi στο τοπικό οικιακό σας δίκτυο.

Ο στόχος αυτού του σεμιναρίου είναι να δείξει πώς ένα Pi μπορεί να χρησιμοποιηθεί ως διακομιστής dev, πιο συγκεκριμένα, το παράδειγμα θα είναι να φιλοξενήσει έναν απλό ιστότοπο (χρησιμοποιώντας το Flask).

Βήμα 1. Δηλώστε τις υποθέσεις

Ακολουθούν ορισμένες παραδοχές που θα κάνει αυτό το σεμινάριο:

  1. Έχετε ήδη ρυθμίσει το Raspberry Pi με το Raspbian OS. Εδώ είναι ένας χρήσιμος οδηγός εγκατάστασης εάν χρειάζεστε έναν.
  2. Το Pi είναι συνδεδεμένο στο WiFi του σπιτιού σας (και ότι γνωρίζετε τη διεύθυνση IP του Pi).
  3. Δεν θα χρειαστείτε μια οθόνη προς τα εμπρός. υποθέτοντας ότι τα σημεία 1 και 2 είναι πλήρη.

Θα χρησιμοποιήσουμε τον κώδικα VS με την επέκταση Remote VSCode για τη δημιουργία και επεξεργασία αρχείων από απόσταση. Σας προτείνω σίγουρα να χρησιμοποιήσετε αυτά τα δύο για να τα ακολουθήσετε. Επίσης, αυτά θα κάνουν την εργασία με απομακρυσμένα αρχεία πολύ πιο εύκολη, επομένως αυτό είναι ένα πλεονέκτημα.

Βήμα 2. Βρείτε τη διεύθυνση IP του Pi

Πρώτα, συνδέστε το Pi σε τροφοδοτικό και βεβαιωθείτε ότι έχει εκκινηθεί σωστά και ότι είναι συνδεδεμένο στο WiFi / Ethernet (βασικά, πρέπει να έχει σύνδεση στο Διαδίκτυο).

Θα χρησιμοποιήσουμε το ssh για να συνδεθούμε και να επικοινωνήσουμε με το Pi. Για να το κάνετε εξ αποστάσεως χρησιμοποιώντας φορητό υπολογιστή, πρέπει να γνωρίζετε τη διεύθυνση IP του. Αυτό μπορεί εύκολα να ληφθεί χρησιμοποιώντας την πύλη διαχειριστή του ISP (συνήθως διατίθεται στη διεύθυνση //192.168.0.1. Λάβετε υπόψη ότι αυτό θα μπορούσε να είναι διαφορετικό για διαφορετικούς ISP.)

Συνήθως, πρέπει να έχετε το Pi συνδεδεμένο σε μια διεύθυνση που μπορεί να μοιάζει με το "192.168.0.12." Και πάλι, αυτό θα είναι διαφορετικό για διαφορετικούς ανθρώπους. Χρησιμοποιήστε λοιπόν τη διεύθυνση IP που βρήκατε για το Pi σας στην πύλη διαχειριστή. Προς τα εμπρός, αυτό το σεμινάριο θα χρησιμοποιεί το 192.168.0.12 ως διεύθυνση IP του Pi.

Βήμα 3. Συνδεθείτε στο Pi χρησιμοποιώντας ssh

Ανοίξτε τον κωδικό VS και το ενσωματωμένο παράθυρο τερματικού στον φορητό υπολογιστή σας. Συνδεθείτε στο Pi με μια διεύθυνση IP 192.188.0.12 χρησιμοποιώντας την ακόλουθη εντολή ssh:

ssh -R 52698: localhost: 52698 [email protected]

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

Βήμα 4. Δημιουργήστε έναν κατάλογο έργου

Πρέπει τώρα να βρίσκεστε στον αρχικό κατάλογο του Pi. Ας δημιουργήσουμε έναν κατάλογο για τον ιστότοπο που θέλουμε να δημιουργήσουμε. Χρησιμοποιήστε την ακόλουθη εντολή για να δημιουργήσετε τον κατάλογο:

mkdir MyFlask Ιστοσελίδα

Χρησιμοποιήστε την εντολή "ls" για να επιβεβαιώσετε ότι μπορείτε πράγματι να δείτε έναν νέο φάκελο με το όνομα MyFlaskWebsite.

Βήμα 5. Εγκαταστήστε τη φιάλη

Θα χρησιμοποιήσουμε το Flask για να δημιουργήσουμε έναν απλό ιστότοπο. Το Flask είναι ένα πλαίσιο micro web βασισμένο σε Python. Χρησιμοποιεί το Jinja (κινητήρα προτύπων με βάση το Python) ως κινητήρα προτύπου που το καθιστά πολύ χρήσιμο και ισχυρό. Χρησιμοποιήστε την ακόλουθη εντολή για να εγκαταστήσετε τη φιάλη στο Pi:

sudo apt-get εγκατάσταση python3-φιάλη

Βήμα 6. Γράψτε έναν βασικό κώδικα

Τώρα που έχει εγκατασταθεί το Flask, μπορούμε να αρχίσουμε να δημιουργούμε αρχεία και να γράφουμε κάποιο κώδικα. Αρχικά, μεταβείτε στον κατάλογο έργου που δημιουργήσατε πρόσφατα (από το βήμα 4) χρησιμοποιώντας την ακόλουθη εντολή:

cd MyFlask Ιστοσελίδα

Όλα τα αρχεία και οι φάκελοι του έργου θα βρίσκονται μέσα σε αυτόν τον κατάλογο «MyFlaskWebsite». Τώρα, δημιουργήστε το πρώτο αρχείο κώδικα (app.py) χρησιμοποιώντας την ακόλουθη εντολή:

αγγίξτε app.py

Κατά τον έλεγχο του καταλόγου χρησιμοποιώντας την εντολή "ls", θα πρέπει να μπορείτε να δείτε αυτό το πρόσφατα δημιουργημένο αρχείο.

Τώρα, πατήστε F1 και επιλέξτε "Απομακρυσμένος διακομιστής εκκίνησης". Αυτό θα σας επιτρέψει να επεξεργαστείτε απομακρυσμένα αρχεία στο Pi χρησιμοποιώντας τον φορητό υπολογιστή σας.

Στη συνέχεια, χρησιμοποιήστε την ακόλουθη εντολή για να ξεκινήσετε την επεξεργασία του αρχείου app.py που δημιουργήσατε πρόσφατα. Μπορεί να χρειαστούν λίγα δευτερόλεπτα, αλλά το κενό αρχείο θα πρέπει τότε να είναι ορατό στο παράθυρο ακριβώς πάνω.

rmate app.py

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

Αποθηκεύστε το αρχείο και χρησιμοποιήστε την ακόλουθη εντολή για να εκτελέσετε τον ιστότοπο στον διακομιστή Pi:

python3 app.py

Μόλις λάβετε το παραπάνω μήνυμα επιτυχίας, ανοίξτε ένα νέο παράθυρο προγράμματος περιήγησης σε οποιαδήποτε συσκευή στο δίκτυό σας και πληκτρολογήστε τη διεύθυνση IP του Pi (σε αυτήν την περίπτωση, είναι 192.168.0.12) ακολουθούμενη από τη θύρα στην οποία εκτελείται ο διακομιστής dev (5000). ) Έτσι, η πλήρης διεύθυνση θα είναι //192.168.0.12:5000/

Θα πρέπει να δείτε το κείμενο «Αυτός είναι ο ιστότοπος της φιάλης μου και είναι τόσο καλός». στην ιστοσελίδα.

Αυτό επιβεβαιώνει ότι ο διακομιστής dev είναι ενεργός και εκτελεί τον ιστότοπο που μόλις δημιουργήσατε.

Βήμα 7. Προσθέστε περισσότερες διαδρομές

Επί του παρόντος, ο κωδικός αποτελείται από μόνο 1 διαδρομή που είναι η αρχική σελίδα του ιστότοπου. Προσθέστε μια άλλη διαδρομή πληκτρολογώντας τον ακόλουθο κωδικό. Σημειώστε ότι μπορείτε να κάνετε δυναμικές αλλαγές ενώ εκτελείται ο διακομιστής dev. Θα καταγράψει αυτόματα το δέλτα (αλλαγή κώδικα) και θα εκτελέσει μια αναθεωρημένη έκδοση μόλις ανανεώσετε το παράθυρο του προγράμματος περιήγησής σας.

Για να ελέγξετε αν η νέα διαδρομή λειτουργεί όπως αναμενόταν, μεταβείτε στη διεύθυνση //192.168.0.12:5000/meow και η ιστοσελίδα θα πρέπει να «MEOW».

Βήμα 8. Προσθέστε δομή στον κώδικά σας

Τώρα, η προσθήκη περισσότερων διαδρομών είναι δροσερή, αλλά ο πλήρης κωδικός σε ένα μόνο αρχείο app.py δεν είναι ο τρόπος με τον οποίο πρέπει να δομηθεί ένας ιστότοπος. Συνήθως, θα έχουμε έναν φάκελο με πρότυπα HTML, έναν φάκελο με στατικά αρχεία CSS και έναν άλλο για αρχεία JS. Ας προσθέσουμε αυτούς τους φακέλους και μετακινήστε τον κώδικα σε κατάλληλους φακέλους για να δομήσουμε καλύτερα τον κώδικα. Χρησιμοποιήστε τις ακόλουθες εντολές για να δημιουργήσετε αυτούς τους καταλόγους:

πρότυπα mkdir στατική mkdir

Χρησιμοποιήστε την εντολή "ls" για να επιβεβαιώσετε ότι έχουν δημιουργηθεί αυτοί οι φάκελοι.

Τώρα, ας δημιουργήσουμε ένα αρχείο HTML για την αρχική σελίδα. Χρησιμοποιήστε τις ακόλουθες εντολές για να μεταβείτε στον κατάλογο προτύπων. Στη συνέχεια, δημιουργήστε ένα νέο αρχείο με όνομα index.html και χρησιμοποιήστε το rmate για να επεξεργαστείτε το ίδιο:

cd templates touch index.html rmate index.html

Γράψτε έναν βασικό κώδικα HTML για την αρχική σελίδα στο index.html.

Κάντε τις ακόλουθες αλλαγές στο app.py για να χρησιμοποιήσετε το αρχείο index.html. Ο παρακάτω κώδικας θα αναζητήσει από προεπιλογή ένα αρχείο με όνομα index.html στον κατάλογο προτύπων.

Πλοηγηθείτε πίσω στον κατάλογο έργου και εκτελέστε ξανά τον ιστότοπο.

Επιστρέψτε στην αρχική σελίδα και θα πρέπει να δείτε το περιεχόμενο που έχετε τοποθετήσει στο index.html.

Τώρα προσθέστε λίγο στυλ δημιουργώντας το 'main.css' μέσα στον στατικό κατάλογο. Όπως πάντα, χρησιμοποιήστε την εντολή «cd» για να αλλάξετε τον κατάλογο, την εντολή «αγγίξτε» για να δημιουργήσετε ένα νέο αρχείο και την εντολή «rmate» για να επεξεργαστείτε το ίδιο αρχείο.

Προσθέστε λίγο στυλ στην ετικέτα h4. Λάβετε υπόψη ότι επί του παρόντος έχουμε ετικέτα 1 h4 στο index.html την οποία υποτίθεται ότι πρέπει να τροποποιήσει το css.

Όπως πάντα, δοκιμάστε τις αλλαγές σας χρησιμοποιώντας την ακόλουθη εντολή:

python3 app.py

Παρατηρήστε πώς το κείμενο μέσα στην ετικέτα h4 χρωματίζεται σύμφωνα με το CSS.

Βήμα 9. Επωφεληθείτε από τη Jinja

Η Jinja σε μια μηχανή προτύπων βασισμένη σε Python που προσθέτει πολλές ισχυρές δυνατότητες σε ιστοσελίδες Αν και αυτό το σεμινάριο δεν επικεντρώνεται στην εκμάθηση της Τζίντζα, ας δούμε απλώς ένα απλό παράδειγμα για το πώς μπορεί να είναι χρήσιμη η Τζίντζα.

Ας δημιουργήσουμε μια λίστα με φρούτα στο app.py και αφήστε την ως παράμετρο στο index.html. Στη συνέχεια, θα έχουμε το index.html εμφάνιση αυτής της λίστας στην ιστοσελίδα. Πραγματοποιήστε τις ακόλουθες αλλαγές στο app.py και στο index.html.

Ανανεώστε την ιστοσελίδα σας και θα δείτε τη λίστα των φρούτων στην οθόνη.

Αυτό μιλάει για το πόσο ισχυρή και χρήσιμη μπορεί να είναι η Jinja. Για περισσότερες πληροφορίες σχετικά με το Jinja, ανατρέξτε σε αυτό.

Βήμα 10. Επόμενα βήματα

Τώρα που διαθέτετε έναν πλήρως λειτουργικό διακομιστή Python, οι δυνατότητες προόδου είναι πρακτικά άπειρες. Ακολουθούν μερικά χρήσιμα επόμενα βήματα που μπορείτε να λάβετε υπόψη για το έργο σας:

  1. Προς το παρόν, το Pi είναι προσβάσιμο μόνο μέσω των συσκευών στο προσωπικό σας δίκτυο. Για να εκθέσετε το Pi στον έξω κόσμο (πρόσβαση σε αυτό μέσω οποιασδήποτε συσκευής εκτός του προσωπικού σας δικτύου), χρειάζεστε κάτι γνωστό ως προώθηση προόδου. Βασικά, χρειάζεστε ένα όνομα τομέα και μια στατική διεύθυνση IP που έχει οριστεί μόνιμα στο Pi. Περισσότερες πληροφορίες εδώ και εδώ.
  2. Οι περισσότερες εφαρμογές θα απαιτούν μια βάση δεδομένων για βασικές λειτουργίες CRUD. Η Python υποστηρίζει το SQlite απευθείας από το κουτί. Μάθετε πώς να χρησιμοποιείτε το SQlite με τη φιάλη εδώ και εδώ.
  3. Εδώ είναι ένα δροσερό κιτ εκκίνησης Raspberry Pi στο Amazon. Το τακτοποιημένο πράγμα είναι ότι διαθέτει όλα όσα χρειάζεστε για να ξεκινήσετε και σας εξοικονομεί την προσπάθεια να αναζητήσετε μόνοι σας μεμονωμένα αντικείμενα.
  4. Επειδή δεν χρησιμοποιείτε οθόνη, είναι σημαντικό να χρησιμοποιήσετε την εντολή τερματισμού λειτουργίας του Pi χρησιμοποιώντας το τερματικό. Αυτό διασφαλίζει ότι η Pi και η κάρτα SD δεν θα υποστούν ζημιά:
sudo shutdown -h τώρα

#Μέχρι την επόμενη φορά.