tornado.web.
Application
(handlers=None, default_host='', transforms=None, **settings)[source]
A collection of request handlers that make up a web application.html
Instances of this class are callable and can be passed directly to HTTPServer to serve the application:python
application = web.Application([ (r"/", MainPageHandler), ]) http_server = httpserver.HTTPServer(application) http_server.listen(8080) ioloop.IOLoop.current().start()
The constructor for this class takes in a list of URLSpec
objects or (regexp, request_class) tuples. When we receive requests, we iterate over the list in order and instantiate an instance of the first request class whose regexp matches the request path. The request class can be specified as either a class object or a (fully-qualified) name.web
Each tuple can contain additional elements, which correspond to the arguments to the URLSpec
constructor. (Prior to Tornado 3.2, only tuples of two or three elements were allowed).express
A dictionary may be passed as the third element of the tuple, which will be used as keyword arguments to the handler’s constructor and initialize
method. This pattern is used for theStaticFileHandler
in this example (note that a StaticFileHandler
can be installed automatically with the static_path setting described below):api
application = web.Application([ (r"/static/(.*)", web.StaticFileHandler, {"path": "/var/www"}), ])
We support virtual hosts with the add_handlers
method, which takes in a host regular expression as the first argument:安全
application.add_handlers(r"www\.myhost\.com", [ (r"/article/([0-9]+)", ArticleHandler), ])
You can serve static files by sending the static_path
setting as a keyword argument. We will serve those files from the /static/
URI (this is configurable with the static_url_prefix
setting), and we will serve /favicon.ico
and /robots.txt
from the same directory. A custom subclass ofStaticFileHandler
can be specified with the static_handler_class
setting.cookie
settings
Additional keyword arguments passed to the constructor are saved in the settings
dictionary, and are often referred to in documentation as 「application settings」. Settings are used to customize various aspects of Tornado (although in some cases richer customization is possible by overriding methods in a subclass of RequestHandler
). Some applications also like to use the settings
dictionary as a way to make application-specific settings available to handlers without using global variables. Settings used in Tornado are described below.app
通常設置:tcp
autoreload
: 若是設置 True
,若是文件有變化進程將自動重啓, 在 Debug mode and automatic reloading(DeBug模式和自動裝載的狀況下自動開啓).debug
: 幾種配置的集合, 具體查看 Debug mode and automatic reloading. 設置 debug=True 至關於設置
autoreload=True
,compiled_template_cache=False
, static_hash_cache=False
, serve_traceback=True
.default_handler_class
and default_handler_args
: 在頁面沒有找到(404錯誤的時候)自定義404錯誤頁視圖動做類及參數compress_response
: 若是設置 True
, responses(響應)將被自動壓縮gzip
: 在Tornado 4.0被compress_response代替
log_function
: 這個函數用來回調 RequestHandler
對象的處理結果,默認主程序導入logging並配置好的話會自動記錄
.也能夠定製Application.log_request這個方法
.serve_traceback
: 若是設置 true,錯誤頁面將包含錯誤跟蹤ui_modules
and ui_methods
: 配置 UIModule
或 UI methods配置模版可用的幫助方法. 能夠是一個模塊、字典或一個模塊或者字典的列表. 更多細節查看 UI modules認證和安全設置:ide
cookie_secret
: 被 RequestHandler.get_secure_cookie和
set_secure_cookie用來配置cookie的標誌
key_version
: 被 set_secure_cookie
用來配置cookie的標誌時cookie_secret的一個key
login_url
: 若是沒有用戶登陸這個 authenticated
裝飾器將被從新定義到. 能夠進一步重寫 RequestHandler.get_login_url
xsrf_cookies
: If true, Cross-site request forgery protection will be enabled.xsrf_cookie_version
: Controls the version of new XSRF cookies produced by this server. Should generally be left at the default (which will always be the highest supported version), but may be set to a lower value temporarily during version transitions. New in Tornado 3.2.2, which introduced XSRF cookie version 2.xsrf_cookie_kwargs
: May be set to a dictionary of additional arguments to be passed toRequestHandler.set_cookie
for the XSRF cookie.twitter_consumer_key
, twitter_consumer_secret
, friendfeed_consumer_key
,friendfeed_consumer_secret
, google_consumer_key
, google_consumer_secret
, facebook_api_key
,facebook_secret
: Used in the tornado.auth
module to authenticate to various APIs.模版設置:
autoescape
: 制對模板的自動轉義. 能夠被設置爲 None 以禁止轉義, 或設置爲一個全部輸出都該傳遞過數 name . 默認是 "xhtml_escape". 能夠在每一個模板中改變使用 {% autoescape %} 指令.compiled_template_cache
: 默認 True
; 若是 False 每次請求將從新加載模版
template_path
: 模版文件目錄. 能夠被 RequestHandler.get_template_path獲取進行重寫
template_loader
: 分配一個 tornado.template.BaseLoader進行模版加載
.若是設置了template_path和
autoescape將失效
. 能夠被 RequestHandler.create_template_loader進一步重寫
.template_whitespace
: 對於模板中的空白處理; 詳細用法請看tornado.template.filter_whitespace
靜態文件設置:
static_hash_cache
: 默認 True
; 若是 False
靜態 urls 將從新加載靜態文件static_path
: 靜態文件的目錄static_url_prefix
: 靜態文件的Url前綴, 默認爲 "/static/"
.static_handler_class
, static_handler_args
: 能夠自定義處理靜態文件的動做和參數,而不是默認的 tornado.web.StaticFileHandler
. static_handler_args
, 若是設置了,應該有一個字典被傳入到動做類的 initialize
方法中listen
(port, address='', **kwargs)[source]
Starts an HTTP server for this application on the given port.
This is a convenience alias for creating an HTTPServer
object and calling its listen method. Keyword arguments not supported by HTTPServer.listen
are passed to the HTTPServer
constructor. For advanced uses (e.g. multi-process mode), do not use this method; create anHTTPServer
and call its TCPServer.bind
/TCPServer.start
methods directly.
Note that after calling this method you still need to call IOLoop.current().start()
to start the server.
Returns the HTTPServer
object.
Changed in version 4.3: Now returns the HTTPServer
object.
add_handlers
(host_pattern, host_handlers)[source]
Appends the given handlers to our handler list.
Host patterns are processed sequentially in the order they were added. All matching patterns will be considered.
reverse_url
(name, *args)[source]
Returns a URL path for handler named name
The handler must be added to the application as a named URLSpec
.
Args will be substituted for capturing groups in the URLSpec
regex. They will be converted to strings if necessary, encoded as utf8, and url-escaped.
log_request
(handler)[source]
Writes a completed HTTP request to the logs.
By default writes to the python root logger. To change this behavior either subclass Application and override this method, or pass a function in the application settings dictionary as log_function
.