La Programmation

Le guide ultime du débutant Python

30 octobre 2021

Table des matières

  • Configuration de l'environnement
    • Configuration de l'environnement local
    • Comment obtenir Python
    • Comment installer Python
    • Installation de Windows
    • Installation Unix/Linux
    • Installation MAC
    • Configuration de Path pour Python
    • Définition du chemin pour Unix/Linux
    • Définition du chemin pour Windows
  • Variables d'environnement Python
    • Exécuter Python
  • Syntaxe de base
    • Identificateurs Python
    • Déclaration Python
    • Indentations en Python
    • Commentaires en Python
    • Obtenir des commentaires
    • Afficher la sortie
  • Types de variables
    • Affectation de valeurs aux variables
    • Types de données Python
    • Cordes
    • Tuples
    • Listes
    • Nombres
  • Opérateurs de base
    • Opérateur d'assignation
    • Opérateur au niveau du bit
    • Opérateur logique
    • Opérateur arithmétique
    • Opérateur de comparaison
    • Opérateur d'identité
    • Opérateur d'adhésion
  • La prise de décision
    • Si déclaration
    • sinon
    • Imbriqué si
    • Si-elif-else-échelle
    • Raccourci si déclaration
    • Instruction if-else abrégée
  • Boucles
    • Pendant que la boucle
    • Pour la boucle
    • Boucles imbriquées
    • Instructions de contrôle de boucle
    • Continuer la déclaration
    • Déclaration de rupture
    • Déclaration de réussite
  • Nombres
    • Conversion de type de nombre
    • Fonctions de nombres aléatoires
    • Fonctions trigonométriques
    • Fonctions mathématiques
  • Cordes
    • Création d'une chaîne
    • Opérateurs spéciaux de chaîne
    • Opérateurs de formatage de chaîne
    • Caractères d'échappement
    • Méthodes de chaîne intégrées
  • Tuples
    • Accéder aux valeurs dans les tuples
    • Mise à jour des tuples
    • Opérateurs Tuple de base
    • Fonctions Tuple intégrées
    • Indexation et découpage
    • Suppression d'un tuple
  • Listes
    • Accéder aux valeurs dans les listes
    • Mise à jour des listes
    • Opérateurs de liste de base
    • Fonctions et méthodes de liste intégrées
    • Indexation et découpage
    • Supprimer l'élément Listes
  • dictionnaire
    • Création d'un dictionnaire
    • Ajouter des éléments dans un dictionnaire
    • Suppression d'éléments du dictionnaire
    • Méthodes du dictionnaire Python
  • Date et l'heure
    • Tuple de temps
    • Module de temps
    • Module Calendrier
  • Les fonctions
    • Comment définir une fonction
    • Appel d'une fonction
    • Passer par référence
    • Passer par valeur
    • Arguments de la fonction
    • Arguments de longueur variable
    • Arguments requis
    • Arguments par défaut
    • Arguments de mots clés
    • Fonctions anonymes
  • Modules
    • Déclaration d'importation
    • L'instruction from import
    • La déclaration d'importation *
    • Localisation des modules
    • Les fonctions locals() et globals()
    • Espaces de noms et portée
    • La fonction dir( )
    • La fonction recharge()
  • Fichiers E/S
    • Ouverture d'un dossier
    • Attributs d'objet de fichier
    • Fermeture d'un dossier
    • Avec déclaration
    • La méthode Write
    • La méthode de lecture
    • La méthode renommer()
    • La méthode remove()
    • Emplacement du fichier
  • Des exceptions
    • Qu'est-ce qu'une exception ?
    • Gérer une exception
    • Lever une exception
    • Liste des exceptions standard
    • Exceptions définies par l'utilisateur
    • Assertions en Python
  • Classes et objets
    • Création de cours
    • Objets de classe
    • Accéder aux attributs
    • Attributs de classe intégrés
    • Collecte des ordures
    • Héritage de classe
    • Remplacer les méthodes
    • Expressions régulières
    • Fonction de correspondance
    • Fonction de recherche
    • Modificateurs d'expression régulière
    • Modèles d'expressions régulières
    • Classes de personnages
    • Cas de répétition
    • Ancres
  • Programmation CGI
  • Accès à la base de données MySQL
  • Réseaux
    • Que sont les sockets ?
    • Le module de prise
    • Modules Internet Python
  • Envoi d'e-mail
    • Envoi d'un e-mail HTML avec Python
    • Envoi de pièces jointes par e-mail
  • Programmation multithread
    • Commencer un nouveau fil
    • Le module de filetage
    • Synchronisation des threads
    • File d'attente prioritaire multithread
  • Traitement XML
    • Qu'est-ce que XML ?
    • Architectures et API d'analyseurs XML
    • Analyse XML avec les API SAX
      • La méthode make_parser
      • La méthode d'analyse
      • La méthode parseString
  • Programmation de l'interface graphique
    • Widgets Tkinter
  • Gestion de la géométrie
  • Articles recommandés

Programmation CGI

Le CGI ou Common Gateway Interface est un ensemble de normes qui définit la manière dont les informations sont échangées entre un script personnalisé et un serveur Web. Le NCSA maintient actuellement les spécifications CGI.

Navigation sur le Web

Si vous voulez comprendre le concept de CGI, voici un exemple. Cliquez sur un lien hypertexte pour parcourir une URL ou une page Web particulière.

  • Le navigateur contacte le serveur Web et demande l'URL.
  • Web Server analyse l'URL et recherche le nom de fichier. S'il trouve le fichier, il le renvoie au navigateur, sinon, il envoie un message d'erreur indiquant que vous avez demandé un mauvais fichier.
  • Le navigateur Web prend la réponse d'un serveur Web et affiche soit le fichier reçu, soit le message d'erreur.

Bien qu'il soit possible de configurer le serveur HTTP de sorte qu'à chaque fois qu'un fichier dans un répertoire spécifique est demandé, ce fichier ne soit pas renvoyé ; au lieu de cela, il est exécuté en tant que programme, et tout ce que ce programme produit est renvoyé pour que votre navigateur l'affiche.

Cette fonction est appelée Common Gateway Interface ou CGI, et les plans sont appelés scripts CGI. Les programmes CGI peuvent être un script Python, un script PERL, un script Shell, un programme C ou C++, etc.

python

En-tête HTTP

La ligne Type de contenu :text/html fait partie de l'en-tête HTTP qui est envoyé à un navigateur pour comprendre le contenu. Tous les en-têtes HTTP seront sous la forme suivante

Oui Non Entête La description
unEmplacement : URLL'URL renvoyée plutôt que l'URL demandée. Vous pouvez utiliser le champ pour rediriger une demande vers n'importe quel fichier.
deuxType de contenu :C'est une chaîne MIME qui définit le format du fichier renvoyé. Par exemple est Content-type:text/html
3Dernière modification : DateLa date de la modification de la ressource.
4Expire : DateL'information devient invalide à la date. Un navigateur utilise cela pour décider quand une page doit être actualisée.
5Set-Cookie : ChaîneDéfinissez le cookie transmis par le chaîne de caractères
6Longueur du contenu : NLa longueur des données est renvoyée. Le navigateur utilise la valeur pour indiquer le temps de téléchargement estimé d'un fichier.

Variables d'environnement CGI

Les programmes CGI ont accès aux quelques variables d'environnement. Ces variables jouent un rôle essentiel lors de l'écriture de tout programme CGI.

Oui Non Nom de variable La description
un CONTENT_LENGTH La longueur des informations de la requête. Il est disponible uniquement pour les requêtes POST.
deux CONTENU_TYPE Le type de données du contenu. Il est utilisé lorsque le client envoie du contenu au serveur. Par exemple, le téléchargement de fichiers.
3 CHAÎNE DE REQUÊTE Les informations codées en URL sont envoyées avec une demande de méthode GET.
4 PATH_INFO C'est le chemin du script CGI.
5 HTTP_COOKIE Il renvoie les cookies définis sous la forme d'une paire de valeurs et d'une clé.
6 REMOTE_HOST Un nom complet de l'hôte faisant la demande. Si les informations ne sont pas disponibles, REMOTE_ADDR peut être utilisé pour obtenir l'adresse IR. la valeur pour signaler le temps de téléchargement estimé pour un fichier.
sept SCRIPT_FILENAME Le chemin d'accès complet au script CGI.
8 REQUEST_METHOD La méthode est utilisée pour faire la demande. Les méthodes les plus courantes sont POST et GET.
9 NOM DU SERVEUR Le nom d'hôte ou l'adresse IP du serveur
dix LOGICIEL_SERVEUR La version et le nom du logiciel sur lequel le serveur est exécuté.
Onze HTTP_USER_AGENT L'en-tête de demande de l'agent utilisateur contient des informations sur l'agent utilisateur à l'origine de la demande. C'est le nom du navigateur Web.
12 REMOTE_ADDR L'adresse IP de l'hôte distant effectue la demande. Il est utile pour la journalisation ou l'authentification.
13 SCRIPT_NAME Le nom du script CGI.

Méthode GET

La méthode GET est une méthode par défaut pour transmettre des informations du navigateur au serveur Web, et elle produit une chaîne qui apparaît à l'emplacement de votre navigateur : box. Vous ne devez jamais utiliser la méthode GET si vous avez un mot de passe ou d'autres informations sensibles. La méthode GET a une limite de taille : seuls 1024 caractères peuvent être envoyés dans une chaîne de requête. La méthode GET envoie des informations à l'aide de l'en-tête QUERY_STRING et sera accessible dans votre programme CGI via la variable d'environnement QUERY_STRING.

SYNTAXE

|__+_| image 617dd274c490b

SORTIR

image 617dd27560edf

Méthode POST

POST est une méthode de demande prise en charge par HTTP utilisé par le World Wide Web. La méthode POST demande au serveur Web d'accepter les données contenues dans le corps du message de requête. Il est utilisé lors du téléchargement d'un fichier ou lors de la soumission d'un formulaire Web rempli.

SYNTAXE

|__+_| image 617dd275b62df

Utilisation de cookies dans CGI

Le protocole HTTP est sans état. Pour un site Web commercial, vous devez conserver des informations de session sur différentes pages.

Dans certaines situations, l'utilisation de cookies est la méthode la plus efficace pour suivre et mémoriser les préférences, les commissions, les achats et d'autres informations afin d'améliorer l'expérience des visiteurs ou les statistiques du site.

Comment ça marche?

Le serveur envoie certaines données au navigateur sous la forme d'un cookie. Le navigateur peut accepter le cookie. S'il est accepté, il est stocké sous la forme d'un enregistrement de texte pur sur le disque dur. Désormais, lorsqu'un visiteur arrive sur une autre page, le cookie est disponible pour être récupéré. Une fois récupéré, votre serveur se souvient de ce qui a été stocké.

Accès à la base de données MySQL

MySQLdb est une interface permettant de se connecter au serveur de base de données MySQL à partir de Python. Il met en œuvre la Python API de base de données v2.0 et est construit sur l'API MySQL C.

Création d'une table de base de données

Une fois la connexion à la base de données établie, vous êtes prêt à créer des tables ou des enregistrements dans les tables de la base de données en utilisant la méthode d'exécution du curseur créé.

image 617dd27621265

INSÉRER Opération

L'opération d'insertion est requise lorsque vous souhaitez créer vos enregistrements dans une table de base de données.

image 617dd2767f199

LIRE Opération

READ L'opération dans n'importe quelle base de données signifie récupérer des informations de la base de données.

Une fois la connexion à la base de données établie, vous êtes prêt à effectuer une requête dans cette base de données. Vous pouvez utiliser le récupérer() méthode pour récupérer un seul enregistrement ou la récupérer() méthode pour récupérer plusieurs valeurs de la table de base de données.

    récupérer()− Il récupère la ligne dans un jeu de résultats. Si certaines lignes ont déjà été extraites du jeu de résultats, il récupère les lignes du jeu de résultats.récupérer()− Il récupère la ligne suivante d'un ensemble de résultats de requête. Un jeu de résultats est un objet qui revient lorsqu'un curseur est utilisé pour interroger une table.nombre de lignes− C'est un attribut en lecture seule et renvoie le nombre de lignes qui ont été affectées par une méthode execute().

Opération de mise à jour

L'opération UPDATE dans n'importe quelle base de données signifie mettre à jour les enregistrements disponibles dans la base de données.

Opération SUPPRIMER

L'opération DELETE supprime certains enregistrements de votre base de données.

Effectuer des transactions

Les transactions sont le mécanisme qui assure la cohérence des données.

    Atomicité− Soit la transaction se termine, soit rien ne se passe.Cohérence− La transaction doit commencer dans un état cohérent et laisser le système dans un état cohérent.Isolement− Les résultats d'une transaction ne sont pas visibles en dehors de la transaction en cours.Durabilité− Une fois qu'une transaction est validée, les effets sont constants, même après une panne du système.

Opération COMMIT

La validation est une opération qui donne un signal vert à la base de données pour finaliser les modifications, et après cette opération, aucune modification ne peut être annulée.

Par exemple db.commit()

Opération ROLLBACK

Si vous ne voulez pas une ou plusieurs modifications et que vous souhaitez annuler complètement ces modifications, vous devez utiliser la restauration () méthode.

Par exemple db.rollback()

Déconnexion de la base de données

Pour déconnecter la connexion à la base de données, vous devez utiliser la méthode close().

Si une connexion à une base de données est fermée, toutes les transactions en cours sont annulées par la base de données. Cependant, en fonction de l'un des détails d'implémentation de niveau inférieur de la base de données, l'application serait préférable d'appeler explicitement commit ou rollback.

Gestion des erreurs

Il existe de nombreuses raisons d'erreurs. Un échec de connexion, une erreur de syntaxe dans une instruction SQL exécutée, en sont quelques exemples

L'API DB définit le nombre d'erreurs pouvant exister dans chaque module de base de données. Le tableau suivant répertorie les exceptions.

Oui Non Des exceptions Descriptions
un ErreurC'est la classe de base pour les erreurs. Il devrait sous-classer Error.
deux Erreur d'interfaceIl est utilisé pour les erreurs dans le module de base de données, pas la base de données elle-même. Il devrait sous-classer Error.
3 AvertissementIl est utilisé pour les problèmes non mortels. Il devrait sous-classer StandardError.
4 Erreur de donnéeC'est la sous-classe de DatabaseError qui fait référence aux erreurs dans les données.
5 Erreur de la base de donnéesIl est utilisé pour l'erreur dans la base de données. Il devrait sous-classer l'erreur
6 OperationalErrorLa sous-classe de DatabaseError fait référence à des erreurs telles que la perte d'une connexion à la base de données. Les erreurs sont hors du contrôle du script Python.
sept Erreur interneLa sous-classe de DatabaseError fait référence aux erreurs internes au module de base de données, comme un curseur qui n'est plus actif.
8 Erreur non prise en chargeLa sous-classe de DatabaseError fait référence à la tentative d'appel de fonctionnalités non prises en charge.
9 Erreur d'intégritéLa sous-classe de DatabaseError pour les situations qui nuisent à l'intégrité relationnelle, telles que les contraintes d'unicité ou les clés étrangères.
dix Erreur de programmationLa sous-classe de DatabaseError fait référence à des erreurs telles que le mauvais nom de table.