Premiers pas avec les applications Web Python

introduction

Cet article est le livre en ligne de Zenn

"Introduction à l'application Web Python auto-conçue pour l'ingénieur Web de 3e année qui est lent"

Ceci est un extrait partiel de.

Ici https://qiita.com/bigen1925/items/dde5575da6c45a91808d Veuillez également lire.

Ecrire un serveur Web en Python

Du coup, créons un serveur qui reçoit une requête d'un navigateur et renvoie une réponse au navigateur avec Python. Le programme suivant démarre en tant que serveur sur le port 8080 (localhost: 8080) de votre PC, et lorsqu'il reçoit une requête du navigateur, il écrit son contenu dans un fichier appelé server_recv.txt, puis server_send.txt Le contenu du fichier est lu et renvoyé au navigateur en tant que réponse.

TCPServer.py

import socket


class TCPServer:
    """
Une classe qui représente un serveur qui effectue une communication TCP
    """
    def serve(self):
        """
Démarrez le serveur
        """

        print("===Démarrez le serveur===")

        try:
            #Générer une socket
            server_socket = socket.socket()
            server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

            #Attribuez le socket au port 8080 de localhost
            server_socket.bind(("localhost", 8080))
            server_socket.listen(10)

            #Attendez une connexion de l'extérieur et établissez une connexion s'il y a une connexion
            print("===Attendez une connexion du client===")
            (client_socket, address) = server_socket.accept()
            print(f"===La connexion avec le client est complète à distance_address: {address} ===")

            #Récupérez les données envoyées par le client
            request = client_socket.recv(4096)

            #Ecrire les données envoyées par le client dans un fichier
            with open("server_recv.txt", "wb") as f:
                f.write(request)

            #Récupérer les données de réponse à envoyer au client à partir du fichier
            with open("server_send.txt", "rb") as f:
                response = f.read()

            #Envoyer une réponse au client
            client_socket.send(response)

            #Mettre fin à la communication
            client_socket.close()

        finally:
            print("===Arrêtez le serveur.===")


if __name__ == '__main__':
    server = TCPServer()
    server.serve()

Créons également un server_send.txt pour le retour.

server_send.txt

HTTP/1.1 200 OK
Date: Wed, 28 Oct 2020 07:57:45 GMT
Server: Apache/2.4.41 (Unix)
Content-Location: index.html.en
Vary: negotiate
TCN: choice
Last-Modified: Thu, 29 Aug 2019 05:05:59 GMT
ETag: "2d-5913a76187bc0"
Accept-Ranges: bytes
Content-Length: 45
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

<html><body><h1>It works!</h1></body></html>

Essayez d'exécuter le programme

Accédez au répertoire où le code source est placé sur la console et exécutez le programme avec la commande suivante.

$ python TCPServer.py
===Démarrez le serveur===
===Attendez une connexion du client===

Gardez l'onglet de la console ouvert et essayez d'accéder à http: // localhost: 8080 dans votre navigateur.

スクリーンショット 2020-10-26 18.49.04.png

Il a été affiché comme une page Web en toute sécurité!

Comprendre le fonctionnement du serveur Web

À l'exception des commentaires, j'ai pu exécuter un serveur Web assez primitif en un peu plus d'une douzaine de lignes. (Pour le moment, il est plus exact de l'appeler un serveur TCP, pas un serveur blanc que l'on peut appeler un serveur Web ...)

La meilleure façon de comprendre comment tout fonctionne est de le fabriquer soi-même.

Si vous souhaitez comprendre le fonctionnement des serveurs Web et des frameworks Web, veuillez consulter notre livre en ligne. https://zenn.dev/bigen1925/books/e6c9492a82f5e2e10fca/viewer/504d96 Lisez s'il vous plaît!

Il existe également une description du code source de cet article.

Recommended Posts

Premiers pas avec les applications Web Python
1.1 Premiers pas avec Python
Premiers pas avec Python
Premiers pas avec Python
Premiers pas avec Python Web Scraping Practice
Premiers pas avec Python Web Scraping Practice
Introduction aux fonctions Python
Premiers pas avec Python Django (1)
Premiers pas avec Python Django (4)
Premiers pas avec Python Django (3)
Introduction à Python Django (6)
Premiers pas avec Python Django (5)
Premiers pas avec Python pour les classes PHPer
Premiers pas avec Python Bases de Python
Premiers pas avec les algorithmes génétiques Python
Premiers pas avec Python 3.8 sous Windows
Premiers pas avec Python pour les fonctions PHPer
Premiers pas avec Python pour PHPer-Super Basics
Premiers pas avec Dynamo de Python boto
Django 1.11 a démarré avec Python3.6
Premiers pas avec Android!
Premiers pas avec apache2
Premiers pas avec Django 1
Introduction à l'optimisation
Premiers pas avec Numpy
Premiers pas avec Spark
Premiers pas avec Pydantic
Premiers pas avec Jython
Premiers pas avec Django 2
[FastAPI] Premiers pas avec FastAPI, un framework Web ASGI créé par Python
Démarrer avec Python avec 100 coups sur le traitement du langage
[Français] Premiers pas avec Rust pour les programmeurs Python
Introduction à Tornado (1): Framework Web Python démarré avec Tornado
Premiers pas avec AWS IoT facilement en Python
Matériel à lire lors de la mise en route de Python
Paramètres pour démarrer avec MongoDB avec python
Traduire Premiers pas avec TensorFlow
Introduction à Tkinter 2: Button
Web scraping avec python + JupyterLab
Premiers pas avec Go Assembly
Premiers pas avec PKI avec Golang ―― 4
API Web avec Python + Falcon
Commencez avec Python! ~ ② Grammaire ~
Premiers pas avec Django avec PyCharm
Application Web avec Python + Flask ② ③
Web scraping débutant avec python
Rationalisez la recherche Web avec Python
Application Web avec Python + Flask ④
Premiers pas avec Google App Engine pour Python et PHP
Commencez avec Python! ~ ① Construction de l'environnement ~
Lien pour commencer avec python
Introduction à Git (1) Stockage d'historique
Premiers pas avec Sphinx. Générer docstring avec Sphinx
Web scraping avec Python Première étape