Introduction à Tornado (1): Framework Web Python démarré avec Tornado

introduction

Dans cette série, nous présenterons comment développer des applications avec Tornado, un serveur Web et un framework d'applications Web qui s'exécutent sur Python. Le contenu de cette série est le suivant.

Dans cette introduction, nous présenterons tout d'abord les fonctionnalités de Tornado, la procédure de paramétrage de l'environnement et la création de l'application "Hello, World".

Public cible

Environnement requis

À propos de Tornado

Tornado est un serveur Web open source non bloquant et un framework Web basé sur Apache License 2.0. Tornado est un framework développé par FriendFeed, absorbé par Facebook, puis open-source.Il présente les fonctionnalités suivantes.

Alors que Django est un framework full-stack, Tornado est un type de framework qui combine les composants dont vous avez besoin. Tornado est extrêmement polyvalent et possède une riche documentation originale. En revanche, il y a peu d'informations japonaises, mais je pense qu'elles seront très utiles si elles peuvent être utilisées.

Utilisons Tornado!

Installation

Installez avec pip comme suit.

$ pip install tornado

Hello World Vous trouverez ci-dessous le code officiel de Hello World. C'est un code court avec un minimum d'écriture, mais cela fonctionne.

app.py


import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.current().start()

Enregistrez le code ci-dessus sous app.py et essayez de l'exécuter comme ceci:

$ python app.py

Si vous accédez au numéro d'hôte local 8888 ([http: // localhost: 8888 /](http: // localhost: 8888 /)) et que les caractères Hello World suivants sont affichés, l'opération réussit. スクリーンショット 2015-10-13 0.11.50.png

Description du code

J'expliquerai les deux points importants suivants dans app.py.

RequestHandler La classe RequestHandler est la classe de base pour le traitement des requêtes HTTP. Afin de gérer la demande réelle, vous devez créer une sous-classe de la classe RequestHandler. Jetez un œil à l'extrait de code ci-dessous.

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

Dans ce morceau de code, la classe MainHandler est créée en héritant de la classe RequestHandler. Lors du traitement d'une requête, Tornado instancie cette classe MainHandler et appelle la méthode qui correspond à la méthode HTTP de la requête. Dans cet exemple, seule la méthode get est définie, donc seules les requêtes HTTP GET peuvent être traitées. En plus de la méthode get, il existe des méthodes post, delete, put, etc. qui prennent en charge POST, DELETE, PUT, etc. De cette manière, la méthode à traiter peut être automatiquement séparée en fonction du type de requête HTTP, une méthode peut donc être simplifiée.

Objet d'application

L'objet Application est utilisé pour configurer les paramètres de l'ensemble de l'application.

application = tornado.web.Application([
    (r"/", MainHandler),
])

Ce morceau de code crée une instance de la classe Application. L'important est de passer une liste de taples comme argument lors de la création d'une instance Application. Ce taple décrit la correspondance entre l'URL et le gestionnaire. Cela indique à Tornado quel gestionnaire doit gérer quelle requête. Dans le cas de l'exemple ci-dessus, cela signifie que lors de l'accès à "[http://example.com/ (http://example.com/)", le traitement est effectué par MainHandler. Si vous avez écrit r "/ hoge /", vous devez accéder à "http://example.com/hoge/".

Matériel de référence

Recommended Posts

Introduction à Tornado (1): Framework Web Python démarré avec Tornado
Lien pour commencer avec python
Premiers pas avec les applications Web Python
Comment démarrer avec Python
Premiers pas avec Python Web Scraping Practice
Introduction au remplissage d'image Python Remplissage d'image à l'aide d'ImageDataGenerator
Web-WF Python Tornado Partie 3 (Introduction à Openpyexcel)
[Introduction à Python] Utilisons foreach avec Python
Premiers pas avec Python Web Scraping Practice
Créez un framework Web avec Python! (1)
Créez un framework Web avec Python! (2)
[FastAPI] Premiers pas avec FastAPI, un framework Web ASGI créé par Python
Django 1.11 a démarré avec Python3.6
[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
Introduction à l'intelligence artificielle avec Python 1 «Théorie des algorithmes génétiques»
Markov Chain Artificial Brainless avec Python + Janome (1) Introduction à Janome
Chaîne de Markov artificielle sans cervelle avec Python + Janome (2) Introduction à la chaîne de Markov
Framework Web Django Python
Introduction à l'intelligence artificielle avec Python 2 «Pratique de l'algorithme génétique»
1.1 Premiers pas avec Python
Premiers pas avec le Web Scraping
Premiers pas avec Python
Introduction au langage Python
Essayez d'utiliser le framework Web Python Tornado Partie 1
Introduction à OpenCV (python) - (2)
Introduction au vol en formation avec Tello edu (Python)
[Introduction à Python3 Jour 20] Chapitre 9 Démêler le Web (9.1-9.4)
Introduction à Python avec Atom (en route)
Introduction au modèle linéaire généralisé (GLM) par Python
Premiers pas avec Python
Essayez d'utiliser le framework Web Python Tornado Partie 2
[Introduction à l'application Udemy Python3 +] 9. Tout d'abord, imprimez avec print
Zubu amateur veut démarrer Python
Matériel à lire lors de la mise en route de Python
[Introduction à Python] Comment itérer avec la fonction range?
J'ai essayé de démarrer avec le script python de blender_Part 01
[Chapitre 5] Introduction à Python avec 100 coups de traitement du langage
Introduction au traitement parallèle distribué Python par Ray
Introduction aux mathématiques à partir du mémo d'étude Python Vol.1
Note de lecture: Introduction à l'analyse de données avec Python
J'ai essayé de démarrer avec le script python de blender_Partie 02
Super Primer to python - Premiers pas avec python3.5 en 3 minutes
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage
Connectez-vous à BigQuery avec Python
Introduction aux fonctions Python
Web scraping avec python + JupyterLab
Introduction à Python Django (2) Win
Connectez-vous à Wikipedia avec Python
Publiez sur Slack avec Python 3
Premiers pas avec Python Django (1)
Introduction à RDB avec sqlalchemy Ⅰ
Premiers pas avec Python Django (4)
Introduction à la communication série [Python]
Premiers pas avec Python Django (3)
API Web avec Python + Falcon
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
[Introduction à Python] <liste> [modifier le 22/02/2020]