ホームページ > バックエンド開発 > Python チュートリアル > 高性能 Web サーバー フレームワーク Tornado は、Restful インターフェイスと開発例をシンプルに実装します。

高性能 Web サーバー フレームワーク Tornado は、Restful インターフェイスと開発例をシンプルに実装します。

WBOY
リリース: 2016-06-16 08:43:12
オリジナル
3045 人が閲覧しました

友人から tornado フレームワークの開発を依頼されました。正直に言うと、私はこのフレームワークをあまり使用しません。 。 。

運用と保守の研究開発に関連した私自身の例をいくつか紹介します。

Tornado のインストール方法は誰もが知っていると思います。

pip install tornado
ログイン後にコピー

公式 Web サイトで紹介されているモジュールのいくつかについて話しましょう。私の理解も含めて、長々と繰り返します。

メインモジュール
web - FriendFeed で使用される基本的な Web フレームワーク。Tornado の重要な機能のほとんどが含まれています。
エスケープ - XHTML、JSON、URL エンコード/デコード メソッド
データベース - 使いやすくするための MySQLdb の単純なカプセル化。これは ORM です。
template - jinja2
に似た、Python ベースの Web テンプレート システム httpclient - ノンブロッキング HTTP クライアント。Web および httpserver で動作するように設計されています。これは、urllib2
を追加するのと似ています。 auth - サードパーティ認証の実装 (Google OpenID/OAuth、Facebook Platform、Yahoo BBAuth、FriendFeed OpenID/OAuth、Twitter OAuth を含む)
locale - ローカリゼーションと翻訳のサポート
オプション - コマンドラインおよび設定ファイル解析ツール。サーバー環境に最適化され、パラメータを受け入れます

基礎となるモジュール
httpserver - Web モジュールを提供する非常に単純な HTTP サーバーの実装
iostream - 一般的な読み取りおよび書き込み操作を容易にする非ブロッキング ソケットの単純なカプセル化
ioloop - コア I/O ループ

Tornado がリクエストをどのように受け入れるかについて話しましょう:
入手方法について

class MainHandler(tornado.web.RequestHandler): 
  def get(self): 
    self.write("You requested the main page") 
class niubi(tornado.web.RequestHandler): 
  def get(self, story_id): 
    self.write("xiaorui.cc niubi'id is " + story_id) 
application = tornado.web.Application([ 
  (r"/", MainHandler), 
  (r"/niubi/([0-9]+)", niubi), 
])

ログイン後にコピー

このように、/niubi/123123123 にアクセスすると、niubi クラスとその中の get パラメータが使用されます。
投稿方法について

class MainHandler(tornado.web.RequestHandler): 
  def get(self): 
    self.write('<html><body><form action="/" method="post">'
         '<input type="text" name="message">'
         '<input type="submit" value="Submit">'
         '</form></body></html>') 
  def post(self): 
    self.set_header("Content-Type", "text/plain") 
    self.write("xiaorui.cc and " + self.get_argument("message"))

ログイン後にコピー

tornado では、一般に get と post は同じアクセス ルートにあり、メソッドが異なるだけで区別されます。
ナンセンスはこれくらいにして、取得と投稿をテストしてみましょう。

import tornado.ioloop 
import tornado.web 
import json 
class hello(tornado.web.RequestHandler): 
  def get(self): 
    self.write('Hello,xiaorui.cc') 
class add(tornado.web.RequestHandler): 
  def post(self): 
    res = Add(json.loads(self.request.body)) 
    self.write(json.dumps(res)) 
def Add(input): 
  sum = input['num1'] + input['num2'] 
  result = {} 
  result['sum'] = sum 
  return result 
application = tornado.web.Application([ 
  (r"/", hello), 
  (r"/add", add), 
]) 
if __name__ == "__main__": 
  application.listen(8888) 
  tornado.ioloop.IOLoop.instance().start() 
ログイン後にコピー

#フォーム テストを作成することも、curl -d を使用してテストすることもできます

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート