Προγραμματισμός

The Ultimate Python Beginner's Guide

30 Οκτωβρίου 2021

Πίνακας περιεχομένων

  • Ρύθμιση περιβάλλοντος
    • Ρύθμιση τοπικού περιβάλλοντος
    • Πώς να αποκτήσετε Python
    • Πώς να εγκαταστήσετε την Python
    • Εγκατάσταση Windows
    • Εγκατάσταση Unix/Linux
    • Εγκατάσταση MAC
    • Ρύθμιση διαδρομής για Python
    • Ρύθμιση διαδρομής για Unix/Linux
    • Ρύθμιση διαδρομής για Windows
  • Μεταβλητές περιβάλλοντος Python
    • Τρέχοντας Python
  • Βασική Σύνταξη
    • Αναγνωριστικά Python
    • Δήλωση Python
    • Εσοχές στην Python
    • Σχόλια σε Python
    • Λήψη εισόδου
    • Εμφάνιση της Εξόδου
  • Τύποι μεταβλητών
    • Εκχώρηση τιμών στις μεταβλητές
    • Τύποι δεδομένων Python
    • Χορδές
    • Πλειάδες
    • Τόπος αγώνων
    • Αριθμοί
  • Βασικοί χειριστές
    • Χειριστής ανάθεσης
    • Χειριστής bitwise
    • Λογικός τελεστής
    • Αριθμητικός τελεστής
    • Χειριστής σύγκρισης
    • Χειριστής Ταυτότητας
    • Διαχειριστής μέλους
  • Λήψη αποφάσης
    • Αν δήλωση
    • αν-αλλιώς
    • Φωλιασμένο αν
    • Αν-ελιφ-άλλο-σκάλα
    • Συνοπτική δήλωση if
    • Συνοπτική δήλωση εάν-άλλο
  • Βρόχοι
    • Ενώ βρόχος
    • Για τον βρόχο
    • Ένθετοι βρόχοι
    • Δηλώσεις ελέγχου βρόχου
    • Συνέχεια δήλωσης
    • Δήλωση διακοπής
    • Δήλωση εισόδου
  • Αριθμοί
    • Μετατροπή τύπου αριθμού
    • Συναρτήσεις τυχαίων αριθμών
    • Τριγωνομετρικές Συναρτήσεις
    • Μαθηματικές Συναρτήσεις
  • Χορδές
    • Δημιουργία συμβολοσειράς
    • String Special Operators
    • Τελεστές μορφοποίησης συμβολοσειρών
    • Χαρακτήρες απόδρασης
    • Ενσωματωμένες μεθόδους συμβολοσειράς
  • Πλειάδες
    • Πρόσβαση στις αξίες σε πλειάδες
    • Ενημέρωση πλειάδων
    • Βασικοί τελεστές πλειάδας
    • Ενσωματωμένο σε πολλαπλές λειτουργίες
    • Ευρετηρίαση και Τεμαχισμός
    • Διαγραφή πλειάδας
  • Τόπος αγώνων
    • Πρόσβαση σε τιμές σε λίστες
    • Ενημέρωση των λιστών
    • Βασικοί τελεστές λίστας
    • Ενσωματωμένη λίστα συναρτήσεων και μεθόδων
    • Ευρετηρίαση και Τεμαχισμός
    • Διαγραφή στοιχείου λιστών
  • Λεξικό
    • Δημιουργία λεξικού
    • Προσθήκη στοιχείων σε ένα λεξικό
    • Αφαίρεση στοιχείων από το λεξικό
    • Μέθοδοι λεξικού Python
  • Ημερομηνία και ώρα
    • Time Tuple
    • Ενότητα χρόνου
    • Ενότητα Ημερολογίου
  • Λειτουργίες
    • Πώς να ορίσετε μια συνάρτηση
    • Κλήση συνάρτησης
    • Περάστε με αναφορά
    • Περάστε από την τιμή
    • Ορίσματα συνάρτησης
    • Ορίσματα μεταβλητού μήκους
    • Απαιτούμενα επιχειρήματα
    • Προεπιλεγμένα ορίσματα
    • Ορίσματα λέξεων-κλειδιών
    • Ανώνυμες Λειτουργίες
  • Ενότητες
    • Δήλωση εισαγωγής
    • Η δήλωση από εισαγωγή
    • Η από εισαγωγή * Δήλωση
    • Εντοπισμός Ενοτήτων
    • Οι συναρτήσεις locals() και globals().
    • Χώροι ονομάτων και οριοθέτηση
    • Η συνάρτηση dir( ).
    • Η συνάρτηση reload().
  • Files I/O
    • Άνοιγμα αρχείου
    • Χαρακτηριστικά αντικειμένου αρχείου
    • Κλείσιμο αρχείου
    • Με Δήλωση
    • Η μέθοδος Write
    • Η μέθοδος ανάγνωσης
    • Η μέθοδος rename().
    • Η μέθοδος remove().
    • Θέση αρχείου
  • Εξαιρέσεις
    • Τι είναι η Εξαίρεση;
    • Χειρισμός εξαίρεσης
    • Θέτοντας μια εξαίρεση
    • Λίστα τυπικών εξαιρέσεων
    • Εξαιρέσεις που ορίζονται από το χρήστη
    • Ισχυρισμοί στην Python
  • Τάξεις και αντικείμενα
    • Δημιουργία τάξεων
    • Αντικείμενα τάξης
    • Πρόσβαση στις ιδιότητες
    • Ενσωματωμένα χαρακτηριστικά κλάσης
    • Συλλογή απορριμάτων
    • Κληρονομιά τάξης
    • Παράκαμψη Μέθοδοι
    • Κανονικές εκφράσεις
    • Λειτουργία αντιστοίχισης
    • Λειτουργία αναζήτησης
    • Τροποποιητές κανονικής έκφρασης
    • Μοτίβα κανονικής έκφρασης
    • Μαθήματα χαρακτήρων
    • Υποθέσεις επανάληψης
    • Άγκυρες
  • Προγραμματισμός CGI
  • Πρόσβαση στη βάση δεδομένων MySQL
  • Δίκτυα
    • Τι είναι οι πρίζες;
    • Η μονάδα υποδοχής
    • Ενότητες Διαδικτύου Python
  • Αποστολή email
    • Αποστολή email HTML με χρήση Python
    • Αποστολή Συνημμένων ως E-mail
  • Προγραμματισμός πολλαπλών νημάτων
    • Ξεκινώντας ένα νέο νήμα
    • Η ενότητα Threading
    • Συγχρονισμός νημάτων
    • Ουρά προτεραιότητας πολλαπλών νημάτων
  • Επεξεργασία XML
    • Τι είναι το XML;
    • XML Parser Architectures και API
    • Ανάλυση XML με SAX API
      • Η μέθοδος make_parser
      • Η μέθοδος ανάλυσης
      • Η μέθοδος parseString
  • Προγραμματισμός GUI
    • Γραφικά στοιχεία Tkinter
  • Διαχείριση Γεωμετρίας
  • Προτεινόμενα άρθρα

Προγραμματισμός CGI

Το CGI ή Common Gateway Interface είναι ένα σύνολο προτύπων που καθορίζει τον τρόπο ανταλλαγής των πληροφοριών μεταξύ μιας προσαρμοσμένης δέσμης ενεργειών και ενός διακομιστή web. Το NCSA διατηρεί επί του παρόντος τις προδιαγραφές CGI.

Σερφάρισμα στο διαδίκτυο

Εάν θέλετε να κατανοήσετε την έννοια του CGI, τότε εδώ είναι ένα παράδειγμα. Κάντε κλικ σε έναν υπερσύνδεσμο για να περιηγηθείτε σε μια συγκεκριμένη διεύθυνση URL ή ιστοσελίδα.

  • Το πρόγραμμα περιήγησης επικοινωνεί με τον διακομιστή ιστού και ζητά τη διεύθυνση URL.
  • Ο διακομιστής Web αναλύει τη διεύθυνση URL και αναζητά το όνομα του αρχείου. Εάν βρει το αρχείο, το στέλνει πίσω στο πρόγραμμα περιήγησης, διαφορετικά, στέλνει ένα μήνυμα σφάλματος που υποδεικνύει ότι ζητήσατε λάθος αρχείο.
  • Το πρόγραμμα περιήγησης Ιστού λαμβάνει την απάντηση από έναν διακομιστή Ιστού και εμφανίζει είτε το ληφθέν αρχείο είτε το μήνυμα σφάλματος.

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

Αυτή η λειτουργία είναι γνωστή ως Common Gateway Interface ή CGI και τα σχέδια είναι γνωστά ως scripts CGI. Τα προγράμματα CGI μπορεί να είναι ένα πρόγραμμα Python Script, PERL Script, Shell Script, C ή C++, κ.λπ.

Πύθων

Κεφαλίδα HTTP

Η γραμμή Content-type:text/html είναι μέρος της κεφαλίδας HTTP που αποστέλλεται σε ένα πρόγραμμα περιήγησης για να κατανοήσει το περιεχόμενο. Όλες οι κεφαλίδες HTTP θα έχουν την ακόλουθη μορφή

ναι όχι Επί κεφαλής Περιγραφή
έναςΤοποθεσία: URLΗ διεύθυνση URL που επιστρέφεται και όχι η διεύθυνση URL που ζητήθηκε. Μπορείτε να χρησιμοποιήσετε το πεδίο για να ανακατευθύνετε ένα αίτημα σε οποιοδήποτε αρχείο.
δύοΤύπος περιεχομένου:Είναι μια συμβολοσειρά MIME που καθορίζει τη μορφή του αρχείου που επιστρέφεται. Για παράδειγμα είναι Content-type:text/html
3Τελευταία τροποποίηση: ΗμερομηνίαΗ ημερομηνία τροποποίησης του πόρου.
4Λήξη: ΗμερομηνίαΟι πληροφορίες καθίστανται άκυρες την ημερομηνία. Ένα πρόγραμμα περιήγησης χρησιμοποιεί αυτό για να αποφασίσει πότε πρέπει να ανανεωθεί μια σελίδα.
5Set-Cookie: StringΡυθμίστε το μπισκότο που περνά από το σειρά
6Μήκος περιεχομένου: ΝΤο μήκος των δεδομένων επιστρέφεται. Το πρόγραμμα περιήγησης χρησιμοποιεί την τιμή για να αναφέρει τον εκτιμώμενο χρόνο λήψης ενός αρχείου.

Μεταβλητές Περιβάλλοντος CGI

Τα προγράμματα CGI έχουν πρόσβαση στις λίγες μεταβλητές περιβάλλοντος. Αυτές οι μεταβλητές παίζουν ουσιαστικό ρόλο κατά τη σύνταξη οποιουδήποτε προγράμματος CGI.

ναι όχι Όνομα μεταβλητής Περιγραφή
ένας CONTENT_LENGTH Το μήκος των πληροφοριών ερωτήματος. Είναι διαθέσιμο μόνο για τα αιτήματα POST.
δύο ΤΥΠΟΣ ΠΕΡΙΕΧΟΜΕΝΟΥ Ο τύπος δεδομένων του περιεχομένου. Χρησιμοποιείται όταν ο πελάτης στέλνει περιεχόμενο στον διακομιστή. Για παράδειγμα, μεταφόρτωση αρχείου.
3 QUERY_STRING Οι πληροφορίες με κωδικοποίηση URL αποστέλλονται με αίτημα μεθόδου GET.
4 PATH_INFO Είναι η διαδρομή για το σενάριο CGI.
5 HTTP_COOKIE Επιστρέφει τα καθορισμένα cookies με τη μορφή ζεύγους τιμών και κλειδιού.
6 ΑΠΟΜΑΚΡΥΣΜΕΝΟΣ ΥΠΟΛΟΓΙΣΤΗΣ Ένα πλήρες όνομα του οικοδεσπότη που υποβάλλει το αίτημα. Εάν οι πληροφορίες δεν είναι διαθέσιμες, τότε το REMOTE_ADDR μπορεί να χρησιμοποιηθεί για τη λήψη της διεύθυνσης IR. την τιμή για την αναφορά του εκτιμώμενου χρόνου λήψης για ένα αρχείο.
7 SCRIPT_FILENAME Η πλήρης διαδρομή προς το σενάριο CGI.
8 ΑΙΤΗΣΗ_ΜΕΘΟΔΟΣ Η μέθοδος χρησιμοποιείται για την υποβολή του αιτήματος. Οι πιο συνηθισμένες μέθοδοι είναι η POST και η GET.
9 ΟΝΟΜΑ ΔΙΑΚΟΜΙΣΤΗ Το όνομα κεντρικού υπολογιστή ή η διεύθυνση IP του διακομιστή
10 SERVER_SOFTWARE Η έκδοση και το όνομα του λογισμικού όπου εκτελείται ο διακομιστής.
έντεκα HTTP_USER_AGENT Η κεφαλίδα αιτήματος χρήστη-πράκτορα περιέχει πληροφορίες σχετικά με τον παράγοντα χρήστη που προέρχεται από το αίτημα. Είναι το όνομα του προγράμματος περιήγησης ιστού.
12 REMOTE_ADDR Η διεύθυνση IP του απομακρυσμένου κεντρικού υπολογιστή υποβάλλει το αίτημα. Είναι χρήσιμο για καταγραφή ή έλεγχο ταυτότητας.
13 SCRIPT_NAME Το όνομα του σεναρίου CGI.

Μέθοδος GET

Η μέθοδος GET είναι μια προεπιλεγμένη μέθοδος για τη μετάδοση πληροφοριών από το πρόγραμμα περιήγησης στον διακομιστή web και παράγει μια συμβολοσειρά που εμφανίζεται στη θέση του πλαισίου του προγράμματος περιήγησής σας: Δεν πρέπει ποτέ να χρησιμοποιείτε τη μέθοδο GET εάν έχετε κωδικό πρόσβασης ή άλλες ευαίσθητες πληροφορίες. Η μέθοδος GET έχει περιορισμό μεγέθους: μόνο 1024 χαρακτήρες μπορούν να σταλούν σε μια συμβολοσειρά αιτήματος. Η μέθοδος GET στέλνει πληροφορίες χρησιμοποιώντας την κεφαλίδα QUERY_STRING και θα είναι προσβάσιμη στο Πρόγραμμα CGI μέσω της μεταβλητής περιβάλλοντος QUERY_STRING.

ΣΥΝΤΑΞΗ

|_+_| img 617dd274c490b

ΠΑΡΑΓΩΓΗ

img 617dd27560edf

Μέθοδος POST

Το POST είναι μια μέθοδος αιτήματος που υποστηρίζεται από HTTP που χρησιμοποιείται από τον Παγκόσμιο Ιστό. Η μέθοδος POST ζητά από τον διακομιστή web να αποδεχτεί τα δεδομένα που περικλείονται στο σώμα του μηνύματος αιτήματος. Χρησιμοποιείται κατά τη μεταφόρτωση ενός αρχείου ή κατά την υποβολή συμπληρωμένης φόρμας ιστού.

ΣΥΝΤΑΞΗ

|_+_| img 617dd275b62df

Χρήση Cookies στο CGI

Το πρωτόκολλο HTTP είναι ανιθαγενές. Για έναν εμπορικό ιστότοπο, απαιτείται να διατηρείτε πληροφορίες συνεδρίας μεταξύ διαφόρων σελίδων.

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

Πώς λειτουργεί;

Ο διακομιστής στέλνει ορισμένα δεδομένα στο πρόγραμμα περιήγησης με τη μορφή cookie. Το πρόγραμμα περιήγησης ενδέχεται να αποδεχτεί το cookie. Εάν γίνει αποδεκτό, τότε αποθηκεύεται ως μια ευθεία εγγραφή κειμένου στον σκληρό δίσκο. Τώρα, όταν ένας επισκέπτης φτάνει σε άλλη σελίδα, το cookie είναι διαθέσιμο για ανάκτηση. Μόλις ανακτηθεί, ο διακομιστής σας θυμάται τι ήταν αποθηκευμένο.

Πρόσβαση στη βάση δεδομένων MySQL

Το MySQLdb είναι μια διεπαφή για σύνδεση στον διακομιστή βάσης δεδομένων MySQL από την Python. Υλοποιεί την Πύθων Database API v2.0 και είναι χτισμένο πάνω από το MySQL C API.

Δημιουργία πίνακα βάσεων δεδομένων

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

img 617dd27621265

Λειτουργία INSERT

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

img 617dd2767f199

Λειτουργία READ

READ Λειτουργία σε οποιαδήποτε βάση δεδομένων σημαίνει λήψη ορισμένων πληροφοριών από τη βάση δεδομένων.

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

    fetchall()− Φέρνει τη σειρά σε ένα σύνολο αποτελεσμάτων. Εάν ορισμένες σειρές έχουν ήδη εξαχθεί από το σύνολο αποτελεσμάτων, τότε ανακτά τις σειρές από το σύνολο αποτελεσμάτων.fetchone()− Φέρνει την επόμενη σειρά ενός συνόλου αποτελεσμάτων ερωτήματος. Ένα σύνολο αποτελεσμάτων είναι ένα αντικείμενο που επιστρέφει όταν χρησιμοποιείται δρομέας για να ρωτήσετε έναν πίνακα.αριθμός σειρών− Είναι ένα χαρακτηριστικό μόνο για ανάγνωση και επιστρέφει τον αριθμό των γραμμών που επηρεάστηκαν από μια μέθοδο execute().

Λειτουργία ενημέρωσης

Η Λειτουργία ΕΝΗΜΕΡΩΣΗ σε οποιαδήποτε βάση δεδομένων σημαίνει ενημέρωση εγγραφών, οι οποίες είναι διαθέσιμες στη βάση δεδομένων.

Λειτουργία DELETE

Η λειτουργία DELETE διαγράφει ορισμένες εγγραφές από τη βάση δεδομένων σας.

Εκτέλεση Συναλλαγών

Οι συναλλαγές είναι ο μηχανισμός που διασφαλίζει τη συνέπεια των δεδομένων.

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

ΔΕΣΜΕΥΣΗ Λειτουργία

Το Commit είναι μια λειτουργία που δίνει ένα πράσινο σήμα στη βάση δεδομένων για την οριστικοποίηση των αλλαγών και μετά από αυτήν τη λειτουργία, καμία αλλαγή δεν μπορεί να επιστραφεί.

Για παράδειγμα db.commit()

Λειτουργία ROLLBACK

Εάν δεν θέλετε μία ή περισσότερες αλλαγές και θέλετε να επαναφέρετε πλήρως αυτές τις αλλαγές, τότε θα πρέπει να χρησιμοποιήσετε την επαναφορά () μέθοδος.

Για παράδειγμα db.rollback()

Αποσύνδεση βάσης δεδομένων

Για να αποσυνδέσετε τη σύνδεση της βάσης δεδομένων, θα πρέπει να χρησιμοποιήσετε τη μέθοδο close().

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

Σφάλματα χειρισμού

Υπάρχουν πολλοί λόγοι για λάθη. Μια αποτυχία σύνδεσης, ένα συντακτικό σφάλμα σε μια εκτελεσμένη πρόταση SQL, είναι λίγα παραδείγματα

Το DB API καθορίζει τον αριθμό των σφαλμάτων που μπορεί να υπάρχουν σε κάθε λειτουργική μονάδα βάσης δεδομένων. Ο παρακάτω πίνακας παραθέτει τις εξαιρέσεις.

ναι όχι Εξαιρέσεις Περιγραφές
ένας ΛάθοςΕίναι η βασική κλάση για σφάλματα. Θα πρέπει να υποκατηγορία Σφάλμα.
δύο Σφάλμα διεπαφήςΧρησιμοποιείται για σφάλματα στη μονάδα βάσης δεδομένων, όχι στην ίδια τη βάση δεδομένων. Θα πρέπει να υποκατηγορία Σφάλμα.
3 ΠροειδοποίησηΧρησιμοποιείται για μη θανατηφόρα προβλήματα. Θα πρέπει να υποκατηγορία StandardError.
4 Σφάλμα δεδομένωνΕίναι η υποκατηγορία του DatabaseError που αναφέρεται σε σφάλματα στα δεδομένα.
5 Σφάλμα βάσης δεδομένωνΧρησιμοποιείται για το σφάλμα στη βάση δεδομένων. Θα πρέπει να είναι σφάλμα υποκατηγορίας
6 Λειτουργικό ΣφάλμαΗ υποκλάση του DatabaseError αναφέρεται σε σφάλματα όπως η απώλεια σύνδεσης με τη βάση δεδομένων. Τα σφάλματα είναι εκτός του ελέγχου του scripter Python.
7 Εσωτερικό σφάλμαΗ υποκλάση του DatabaseError αναφέρεται σε σφάλματα εσωτερικά της μονάδας βάσης δεδομένων, όπως ένας δρομέας που δεν είναι πλέον ενεργός.
8 NotSupportedErrorΗ υποκατηγορία του DatabaseError αναφέρεται στην προσπάθεια κλήσης μη υποστηριζόμενης λειτουργικότητας.
9 Σφάλμα ακεραιότηταςΗ υποκλάση του DatabaseError για καταστάσεις που βλάπτουν τη σχεσιακή ακεραιότητα, όπως οι περιορισμοί μοναδικότητας ή τα ξένα κλειδιά.
10 Σφάλμα προγραμματισμούΗ υποκλάση του DatabaseError αναφέρεται σε σφάλματα όπως το κακό όνομα πίνακα.