Serveur HTTP facile avec Python

C'est une méthode pour créer rapidement un serveur HTTP pour une petite vérification de fonctionnement.

CallbackServer.py


#!/usr/bin/env python

import requests
from BaseHTTPServer import HTTPServer
from BaseHTTPServer import BaseHTTPRequestHandler
import urlparse

def start(port, callback):
    def handler(*args):
        CallbackServer(callback, *args)
    server = HTTPServer(('', int(port)), handler)
    server.serve_forever()

class CallbackServer(BaseHTTPRequestHandler):
    def __init__(self, callback, *args):
        self.callback = callback
        BaseHTTPRequestHandler.__init__(self, *args)

    def do_GET(self):
        parsed_path = urlparse.urlparse(self.path)
        query = parsed_path.query
        self.send_response(200)
        self.end_headers()
        result = self.callback(query)
        message = '\r\n'.join(result)
        self.wfile.write(message)
        return

Il définit une classe qui définit une fonction de rappel basée sur HTTPServer. Veuillez installer les demandes avec pip, etc.

Comment l'utiliser, c'est comme ça.

simple_test.py


#!/usr/bin/env python
# coding:utf-8

import sys
import CallbackServer

def callback_method(query):
    return ['Hello', 'World!', 'with', query]

if __name__ == '__main__':
    port = sys.argv[1]
    CallbackServer.start(port, callback_method)

Si vous ne recevez que le numéro de port et que vous transmettez le numéro de port et la méthode (callback_method) qui sera appelée lors d'un accès HTTP, le serveur HTTP montera sans autorisation. callback_method reçoit une requête GET (derrière? Dans l'URL) comme argument et retourne la chaîne de caractères retournée en tant que réponse avec retour. Si vous renvoyez une liste de chaînes de caractères, elle sera interrompue par CRLF sans autorisation.

Commencez

./simple_test.py 12345

Après cela, si vous accédez à http: // localhost: 12345 /? Hoge = 123 depuis le navigateur

Hello
World!
with
hoge=123

Est sortie.

Recommended Posts

Serveur HTTP facile avec Python
Communication HTTP avec Python
Serveur local avec python
[Analyse de co-occurrence] Analyse de co-occurrence facile avec Python! [Python]
Synchronisation facile des dossiers avec Python
Compilation facile de Python avec NUITKA-Utilities
Serveur HTTP simple pour python
[Python] Traitement parallèle facile avec Joblib
Ecrire un serveur HTTP / 2 en Python
Transmission de courrier facile avec Hâte Python3
Optimisation bayésienne très simple avec Python
Visualisez facilement vos données avec Python seaborn.
Exécution parallèle facile avec le sous-processus python
FizzBuzz en Python3
Extraction de mots-clés facile avec TermExtract pour Python
Grattage avec Python
[Python] Test super facile avec instruction assert
[Python] Vérification simple du type d'argument avec la classe de données
Python est facile
[Didacticiel d'analyse Python en base de données avec SQL Server 2017]
Grattage avec Python
Type de téléchargement de partage HTTP réalisé avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Introduction facile de la reconnaissance vocale avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
[Easy Python] Lecture de fichiers Excel avec openpyxl
avec syntaxe (Python)
Application Web facile avec Python + Flask + Heroku
Bingo avec python
Zundokokiyoshi avec python
Traitez facilement des images en Python avec Pillow
[Easy Python] Lecture de fichiers Excel avec des pandas
Scraping Web facile avec Python et Ruby
[Python] Essayez facilement l'apprentissage amélioré (DQN) avec Keras-RL
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Surveillance simple du serveur avec AWS Lambda (Python) et notification des résultats avec Slack
[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
Sortie CSV de la recherche Google avec [Python]! 【Facile】
Connexion ODBC à FileMaker 11 Server Advanced avec Python 3
Contenu Web Python réalisé avec le serveur bon marché Lolipop
Démarrez un serveur Web Python simple avec Docker
Envoyer HTTP avec l'en-tête d'authentification de base en Python
Créer un serveur "Hello World" (HTTP) dans Tornado
Analyse de régression LASSO facile avec Python (pas de théorie)
Créez rapidement un serveur API avec Python + Falcon
✨ Facile avec Python ☆ Temps écoulé estimé après la mort ✨
Communication série avec Python
Serveur TFTP avec Docker
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Python avec eclipse + PyDev.
Communication de socket avec Python