Tornado初めて知った
4426 ワード
Python web第二の重要なフレーム、tonado公式中国語文書(http://tornado-zh.readthedocs.io/zh/latest/guide.html)
tonadoの特徴:機能は少ないですが、非常に精巧なwebフレームです。高機能を両立させ、非同期でIOをブロックせず、websocketを長く接続し、高機能のHTTPサーバを内蔵しています。
1.据え付け
注意:tonado webプログラムは、Djangoのように自動的にプロジェクト構造を生成するのではなく、プログラミング手順に注意してください。第一:必要なモジュールを導入する Request Handler:tonadoウェブフレームのコアの1つの処理クラスは、主にユーザ要求オブジェクトの処理を行う。 Appplication:tonado webフレームの中核となる処理類は、主にwebアプリケーションの包装を行う。 IOLoop:tonado webサーバのコア処理クラスは、主にポーリング傍受要求を行う。 第二に、開発ビュー処理クラスはRequest Handlerを引き継ぎ、異なる要求方式を処理するために、親クラスの要求処理方法を書き換える必要がある。 第3:ウェブアプリケーションを構築し、サーバ を起動する。
この時点で最も基本的なtonadoプロジェクトの作成に成功しました。この時に様々な機能が豊富な項目を追加することができます。第4回:内蔵サーバ tonado標準プロセス 第五:その他の操作 プログラムで定義された変数 アプリケーションは、コマンドラインパラメータ を受け取ります。ハンドメイド多プロセス ウェブページと静的リソースを設定します。debug get/postパラメータ処理[フォーム処理]及びテンプレート文法
tonadoの特徴:機能は少ないですが、非常に精巧なwebフレームです。高機能を両立させ、非同期でIOをブロックせず、websocketを長く接続し、高機能のHTTPサーバを内蔵しています。
1.据え付け
pip install tornado tornado
#tornado windows , linux .
2.トラナドプロジェクトの作成注意:tonado webプログラムは、Djangoのように自動的にプロジェクト構造を生成するのではなく、プログラミング手順に注意してください。
from tornado.web import Application , RequestHandler
form tornado.ioloop import IOLoop
#
class IndexHandler(RequestHandler):
# get
def get(self):
# self.write()
self.write(“hello tornado!”)
#
if __name__ == "__main__":
# web application
app = Application(
[
#
(r’/’, IndexHandler),
]
)
#
app.listen(8000)
# tornado
IOLoop.current().start()
この時点で最も基本的なtonadoプロジェクトの作成に成功しました。この時に様々な機能が豊富な項目を追加することができます。
#
from tornado.httpserver import HTTPServer
......
# APP ,
server = HTTPServer(app)
server.listen(8000)
の追加 # web application Server
server = HTTPServer(app)
server.bind(8000)# 8000
server.start() # , 1, 1
# 0,
# 0 ,
# define ;options
from tornado.options import define, options
# ,
define("port", default=8000, type=int, help=" 8000")
# :options.port
server.bind(options.port)
#
from tornado.options import define, options, parse_command_line
#
define("port", default=8000, help=" 8000, --port=9000 ")
#
if __name__ == "__main__":
# ~ , define
parse_command_line()
# python demo01.py --port=8000
#
# web ,
python demo.py --port=8000 8000
python demo.py --port=9000 9000
#
#web
# : ~ [3 ]
# 1 ~ ~ [ 2 ,
# ~ ]
#
import os
BASE_DIR=os.path.dirname(__file__)
app = Application(
......
# , tornado
template_path=os.path.join(BASE_DIR, "templates"),
# , tornado
static_path=os.path.join(BASE_DIR, "static"),
# debug ~ True, False,
debug=True,
)
# get post
def get(self):
# get
name = self.get_query_argument("name")
fav = self.get_query_arguments("fav")
def post(self):
# post
account = self.get_body_argument("account")
fav = self.get_body_arguments("fav")
#
name = self.get_argument("name")
fav = self.get_arguments("fav")
#
user = {"name": name}
self.render("index.html", user=user)
# ,jinjia2
{% if books %}
{% else %}
{% end %}
{% for book in books%}
:{{book['name']}}
:{{book['price']}}
:{{book['buycount']}}
:{{book['price'] * book['buycount']}} # , empty
{% end %}