Application configuration

classtornado.web.Application(handlers=Nonedefault_host=''transforms=None**settings)[source]

A collection of request handlers that make up a web application.

Instances of this class are callable and can be passed directly to HTTPServer to serve the application:

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.

Each tuple can contain additional elements, which correspond to the arguments to the URLSpecconstructor. (Prior to Tornado 3.2, only tuples of two or three elements were allowed).

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):

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.

settings

Additional keyword arguments passed to the constructor are saved in the settingsdictionary, 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.

一般设置:

  • autoreload: 如果设置 True,如果文件有变化进程将自动重启, 在 Debug mode and automatic reloading(DeBug模式和自动装载的情况下自动开启).
  • debug: 几种配置的集合, 具体查看 Debug mode and automatic reloading. 设置 debug=True 相当于设置 autoreload=True,compiled_template_cache=Falsestatic_hash_cache=Falseserve_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

认证和安全设置:

  • cookie_secret: 被 RequestHandler.get_secure_cookieset_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_keytwitter_consumer_secretfriendfeed_consumer_key,friendfeed_consumer_secretgoogle_consumer_keygoogle_consumer_secretfacebook_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_classstatic_handler_args: 可以自定义处理静态文件的动作和参数,而不是默认的 tornado.web.StaticFileHandlerstatic_handler_args, 如果设置了,应该有一个字典被传入到动作类的 initialize 方法中
listen(portaddress=''**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 HTTPServerconstructor. 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_patternhost_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.

tornado.web.Application类配置及使用的更多相关文章

  1. Tornado.web.Application之-settings

    应用程序配置 class  tornado.web.Application(handlers:List [Union [Rule,Tuple]] = None,default_host:str = N ...

  2. tornado框架源码分析---Application类之debug参数

    先贴上Application这个类的源码. class Application(httputil.HTTPServerConnectionDelegate): """A ...

  3. 如何关闭tornado.web的Application

    研究热更新Python程序时,需要将已有的HTTP服务器重启. 我的HTTP服务器是用tornado.web.Application生成的,这样很简单: import tornado.web weba ...

  4. 【bug】【yii】配置log时,报错 Setting read-only property: yii\web\Application::log

    Setting read-only property: yii\web\Application::log 配置放在了 components 外面,应该放在里面

  5. Python(九)Tornado web 框架

    一.简介 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过 ...

  6. tornado web 框架的认识

    tornado 简介 1,概述 Tornado就是我们在 FriendFeed 的 Web 服务器及其常用工具的开源版本.Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的 ...

  7. tornado web高级开发项目之抽屉官网的页面登陆验证、form验证、点赞、评论、文章分页处理、发送邮箱验证码、登陆验证码、注册、发布文章、上传图片

    本博文将一步步带领你实现抽屉官网的各种功能:包括登陆.注册.发送邮箱验证码.登陆验证码.页面登陆验证.发布文章.上传图片.form验证.点赞.评论.文章分页处理以及基于tornado的后端和ajax的 ...

  8. 浅析tornado web框架

    tornado简介 1.tornado概述 Tornado就是我们在 FriendFeed 的 Web 服务器及其常用工具的开源版本.Tornado 和现在的主流 Web 服务器框架(包括大多数 Py ...

  9. Tornado web 框架

    Tornado web 框架 其实很简单.深度应用 一.简介 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像we ...

随机推荐

  1. mac下 WebStorm下主题包安装

    mac下: 主题包 1.mac下,点击桌面,使用shift+command+G 输入:~/Library/Preferences 前往(mac查找安装目录的方法,因为默认这些文件夹是隐藏的),进入We ...

  2. java类中的static成员变量和static方法简单介绍,持续补充

    一.静态成员变量 1.属于整个类而不是某个对象实例,所以可以直接通过类名和对象名去调用. 2.静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收 二.静态方 ...

  3. You and your research

    英文版http://www.cs.virginia.edu/~robins/YouAndYourResearch.html 视频版http://www.youtube.com/watch?v=a1zD ...

  4. MySQL库目录下db.opt文件的作用

    细心的朋友可能会发现有时候在某些库目录下有个 db.opt 文件,那这个文件是干什么用的呢?如果你用vi等编辑器打开看的话,内容很简单,是用来记录该库的默认字符集编码和字符集排序规则用的.也就是说如果 ...

  5. T-SQL 游标

    游标是面向行的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能. 在性能上,游标会迟更多的内存,减少可用的并发,占用带宽,锁定资源,当然还有更多的代码量. 用一个比喻来说明为什么游标会占 ...

  6. Android的debug.keystore拒绝访问导致的生成异常及解决方案

    构建Android应用程序的时候输出异常:[apkbuilder] keytool 错误: java.io.FileNotFoundException: C:\Users\my\.android\de ...

  7. CSS发光边框文本框效果

    7,166 次阅读 ‹ NSH Blog 网页设计 CSS发光边框文本框效果 或许你看过Safari浏览器下,任何输入框都会有一个发光的蓝色边框,这不单纯只是蓝色边框而已,其实包含了许多CSS3技巧知 ...

  8. LintCode-A + B 用位操作模拟加法

    class Solution { public: /* * @param a: The first integer * @param b: The second integer * @return: ...

  9. Raphaël—JavaScript Library

    Raphaël-JavaScript Library What is it? Raphaël is a small JavaScript library that should simplify yo ...

  10. Oracle游标动态赋值

    1. oracle游标动态赋值的小例子 -- 实现1:动态给游标赋值 -- 实现2:游标用表的rowtype声明,但数据却只配置表一行的某些字段时,遍历游标时需fetch into到精确字段 CREA ...