J'ai essayé d'étudier côté serveur WEB lors d'une session d'étude Python en interne

J'ai présenté le programme côté serveur WEB lors de la session d'étude interne pour les débutants (3ème fois), donc je l'ai également décrit ici.

Environnement: windows10, python3.7

Python fournit une bibliothèque de serveur WEB simple. Vous pouvez démarrer le serveur WEB avec une simple commande.

Cette fois, nous allons l'implémenter en utilisant CGI, qui est facile à développer. CGI est un mécanisme qui traite les requêtes des navigateurs.

Étant donné que le chemin sous le chemin émis par la commande sera publié, à l'endroit où vous souhaitez publier Exécutez la commande suivante.

>python -m http.server 8888 --cgi

Par exemple d:\work\py_test
Lorsqu'il est exécuté dans le chemin ci-dessus Mettez html dans d: \ work \ py_test
Placez le fichier python à appeler dans d: \ work \ py_test \ cgi-bin .

Dans le cas d'un système d'entreprise, une base de données (ci-après dénommée DB) est utilisée pour stocker les données côté serveur. Cette fois, la préparation de la base de données prend du temps, je l'ai donc implémentée en stockant les données dans un fichier.

Avec Python, vous pouvez facilement implémenter à la fois des opérations sur les fichiers et des opérations de base de données. L'opération est similaire Ouvrir → utiliser → fermer C'est une procédure de.

Créez le fichier source suivant.

↓ Placer dans d: \ work \ py_test \

file_tesl.html


<html>
	<head><meta http-equiv="content-type" charset="utf-8"></head>
	<body>
Tester les opérations sur les fichiers
	<br>
	<form action="http://localhost:8888/cgi-bin/cgi_file_test.py" method="get">
	    <div>Entrez le nom<input name="name" id="name" value=""></div>
	    <button>Courir</button>
	</form>
	</body>
</html>

↓ Placez dans d: \ work \ py_test \ cgi-bin \

cgi_file_test.py


import cgi
import os

#Recevoir les paramètres
form = cgi.FieldStorage()
str_name = form["name"].value

#Exporter vers un fichier (mode addition)
f = open('./data/test.txt','a')
f.write(str_name + "\n")
f.close()

#Lire à partir d'un fichier
read_str = ""
with open('./data/test.txt','r') as f:
    for row in f:
       read_str = read_str +"<br>"+ row.strip()

#Sortie en html
print ("Content-Type: text/html")
print ()
print ("<html><body>")
print ("Les noms saisis jusqu'à présent sont",read_str,"<br>")
print ("<a href=\"../file_test.html\">Revenir</a>")
print ("</body></html>")

Entrez l'URL suivante dans le navigateur WEB et affichez-la pour vérifier l'opération.

http://locahost:8888/file_tesl.html

Après l'avoir affiché sur le navigateur WEB, entrez le nom et appuyez sur "Exécuter". Après la transition d'écran, appuyez sur "Retour" et Entrons le nom.

Vous pouvez voir qu'il sera ajouté.

De cette façon, Python facilite non seulement les cgi, mais facilite également les opérations sur les fichiers.

Étant donné que le framework est utilisé dans le système WEB d'entreprise actuel, ce n'est pas un hobo d'écrire un tel cgi, mais comme le système WEB peut être facilement réalisé, pourquoi ne pas essayer diverses choses?

Recommended Posts

J'ai essayé d'étudier côté serveur WEB lors d'une session d'étude Python en interne
Lisez "Programmation Linux ordinaire" lors d'une session d'étude en interne
J'ai essayé Python sur Mac pour la première fois.
J'ai essayé python pour la première fois avec heroku
Nous avons organisé une session d'étude en interne sur la programmation mob avec le thème de FizzBuzz.
Lisez "Programmation Linux ordinaire" lors d'une session d'étude interne ~ 10.11 Exercices ~
Test.py n'est pas reflété sur le serveur Web dans Python3.
Optimisation d'image côté serveur à l'aide de l'API Web de TinyPNG
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
J'ai essayé webScraping avec python.
J'ai essayé d'envoyer du courrier depuis le serveur Sakura avec flask-mail
J'ai essayé de pousser les documents Sphinx vers BitBucket et de les refléter automatiquement sur le serveur Web
Obtenez la largeur du div côté serveur avec Selenium + PhantomJS + Python
[Python] J'ai essayé de visualiser la nuit du chemin de fer de la galaxie avec WordCloud!
[Python] J'ai essayé de résumer le type collectif (ensemble) d'une manière facile à comprendre.
J'ai essayé avec les 100 meilleurs packages PyPI> J'ai essayé de représenter graphiquement les packages installés sur Python
Un exemple de réponse à la question de référence de la session d'étude. Avec python.
J'ai essayé le serveur asynchrone de Django 3.0
Python: j'ai essayé le problème du voyageur de commerce
Questions examinées lors de la session d'étude d'août 2017
Publier le répertoire actuel sur le serveur Web
J'ai essayé le framework de test Python Tornado
[Python] Comment enregistrer des images sur le Web à la fois avec Beautiful Soup
[IBM Cloud] J'ai essayé d'accéder à la table Db2 on Cloud à partir de Cloud Funtions (python)
J'ai essayé de "lisser" l'image avec Python + OpenCV
J'ai essayé Web Scraping pour analyser les paroles.
[Python] J'ai essayé de remplacer le nom de la fonction par le nom de la fonction
J'ai essayé le web scraping en utilisant python et sélénium
Conseils de dessin avec matplotlib côté serveur
J'ai essayé de simuler "Birthday Paradox" avec Python
J'ai essayé la méthode des moindres carrés en Python
Questions examinées lors de la session d'étude de février
J'ai essayé d'utiliser PyCaret à la vitesse la plus rapide
J'ai essayé la programmation python pour la première fois.
J'ai essayé de lancer jupyter nteract sur le serveur heroku
J'ai essayé de "binariser" l'image avec Python + OpenCV
J'ai essayé d'utiliser le module Datetime de Python
Questions examinées lors de la session d'étude de mai
Au moment de la mise à jour de python avec ubuntu
J'ai essayé d'envoyer un email avec SendGrid + Python
[Python] Je vais télécharger FTP sur le serveur FTP.
J'ai essayé de jouer avec la calculatrice avec tkinter
Une histoire sur un ingénieur venu uniquement du côté serveur a créé un portfolio
[Python3] Prenez une capture d'écran d'une page Web sur le serveur et recadrez-la davantage
Un débutant en python a tenté de faire un stage dans une entreprise informatique [Jour 3 vers les nuages ...]
[CentOS 7.3] Créer un serveur FTP sur l'hôte ESXi
J'ai essayé de représenter graphiquement les packages installés en Python
J'ai essayé d'exécuter l'application sur la plateforme IoT "Rimotte"
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de résoudre Soma Cube avec python
Suite ・ J'ai essayé de créer Slackbot après avoir étudié Python3
J'ai essayé d'implémenter le perceptron artificiel avec python
[Python] J'ai essayé de représenter graphiquement le top 10 des ombres à paupières
Exécuter une commande sur le serveur Web et afficher le résultat
[Python] J'ai essayé d'exécuter un serveur local en utilisant flask
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai essayé l'interpolation d'entrée pour UE4 Python VS Code