ウェブフレームワークweb

5416 ワード

スレッドの安全
デフォルトはスレッドの安全ではなく、マルチスレッドを使用する場合は、IOLoop.add_を使用する必要があります。calbackはfinish要求前にマスタースレッドに制御権を移行します。
ハンドル
initializeはurlの初期化パラメータから渡される
prepareはhttpメソッドの前に呼び出すもので、gagen.co routineまたはreturn_だけでいいです。futureは非同期になりますので、asynchronousは使えません。New in version 3.1:Aynchronous support.
うむfinishはごみを整理したりログを作ったりするためにクライアントに送信した後に呼び出します。
http methodはgen.co routineを使用できます。future、or asynchronous、handlerのSUPPORTED_を設定できます。METHODS実現可能:get head post delete patch put options。
これらの方法の入力
ゲットするargments get_argments get_query_argment get_.query_argments get_body_argment get_.body_argments decode_argment request path_アークスパスkwargs data_received(フロー式要求データ用)
これらの方法の出力
setスターセットheader add_header clear_header set_default_headers write flash(calbackパラメータまたはFutureに戻ることができます)finish render render_ストリングゲットtemplate_namespace redirect send_error write_error clear render_linked_js renderembed_css render_linked_css render_embed_js
クッキー
cookies get_クッキーセットcookie clear_cookie clear_all_cookies get_secure_クッキーget_secure_クッキーkey_version set_secure_cookie create_signed_value
tonado.web.MIN_SUPPORTED_SIGNED_VALE_VERION=1 tonado.web.MAX_SUPPORTED_SIGNED_VALE_VERION=2 tonado.web.DEFAULT_SIGNED_VALE_VERION=2 tonado.web.DEFAULT_SIGNED_VALE_MIN_VERION=1
other
appication check(u)etag_header check_xsrf_cookie coput_etag create_template_loader current_user get_browser_locall get_current_user get_ロゴurl get_status get_template_path get_アメリカ.locale locale locale logh_exception on_connectionclose require_setting reverse se_url set_etag_headerc static_url xsrf_token xsrf_form_html
appication
class tornado.web.Application(handlers=None, default_host='', transforms=None, **settings)
ハンデルス
(matcher,targt,[target ukwargs],[name])
(regexp,target)->(PathMatch,target)デフォルトで使われているのがPathMatchです。
また、Router HTTPMessage Delegateを使用することができます。
ターゲットkwargsとは、initializeメソッドに伝わる最初のパラメータです。
(r"/static/(.*)", web.StaticFileHandler, {"path": "/var/www"}),
We support virtual hosts with the[adduhanders]method、which Taes in a host reglar expression as the first argment:
application.add_handlers(r"www\.myhost\.com", [ (r"/article/([0-9]+)", ArticleHandler),])
If there’sのmatch for the current request’s host,then default_host parameter value is matched against host reglar expressions.
settings
listen
HTTPSeverを例示化してそのlistenを呼び出す方法は、多プロセスに対して先に実用化してからBindを呼び出してからstartを呼び出すべきです。その後もIOLoop.current().start()を呼び出す必要があります。
add_ハンドル
handles add_を追加します。handers(Hostuatonter、hostuhanders)
ゲットするハンドルdelegate(request、targtuclass、targtwargs=None、pathuargs=None、pathugs=None、pathuwargs=None)
reverse_.url
nameを通してurl reverse_を獲得します。url(name、*args)argsはkwargsとして伝えられます。
ロゴrequest
飾り物
async
class MyRequestHandler(RequestHandler):
    @asynchronous
    def get(self):
    http = httpclient.AsyncHTTPClient()
    http.fetch("http://friendfeed.com/", self._on_download)

    def _on_download(self, response):
    self.write("Downloaded!")
    self.finish()  #         finish       
authenticated
この関数はユーザー登録後にアクセスが必要です。ログインするとlogin urlにリダイレクトされます。
addslash
斜線で終わるurlに自動的に斜線を引く
removeslash
ストリームrequest_body
このハンダーはstreamming bodyをサポートしています。
定義が必要ですreceivedはデータ到着後に呼び出します。
受信ファイルの例
#!/usr/bin/env python

"""Usage: python file_receiver.py
Demonstrates a server that receives a multipart-form-encoded set of files in an
HTTP POST, or streams in the raw data of a single file in an HTTP PUT.
See file_uploader.py in this directory for code that uploads files in this format.
"""

import logging

try:
    from urllib.parse import unquote
except ImportError:
    # Python 2.
    from urllib import unquote

import tornado.ioloop
import tornado.web
from tornado import options


class POSTHandler(tornado.web.RequestHandler):
    def post(self):
        for field_name, files in self.request.files.items():
            for info in files:
                filename, content_type = info['filename'], info['content_type']
                body = info['body']
                logging.info('POST "%s" "%s" %d bytes',
                            filename, content_type, len(body))

        self.write('OK')


@tornado.web.stream_request_body
class PUTHandler(tornado.web.RequestHandler):
    def initialize(self):
        self.bytes_read = 0

    def data_received(self, chunk):
        self.bytes_read += len(chunk)

    def put(self, filename):
        filename = unquote(filename)
        mtype = self.request.headers.get('Content-Type')
        logging.info('PUT "%s" "%s" %d bytes', filename, mtype, self.bytes_read)
        self.write('OK')


def make_app():
    return tornado.web.Application([
        (r"/post", POSTHandler),
        (r"/(.*)", PUTHandler),
    ])


if __name__ == "__main__":
    # Tornado configures logging.
    options.parse_command_line()
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()
その他
HTTPError
Finish
MissingAgMentError
UITModule
Error Handler
FallbackHandler
Redirect Handler
Static FileHandler