tornado.web.StaticFileHandler
源代码中的解释
class StaticFileHandler(RequestHandler): ???"""A simple handler that can serve static content from a directory. ???A `StaticFileHandler` is configured automatically if you pass the ???``static_path`` keyword argument to `Application`. ?This handler ???can be customized with the ``static_url_prefix``, ``static_handler_class``, ???and ``static_handler_args`` settings. ???To map an additional path to this handler for a static data directory ???you would add a line to your application like:: ???????application = web.Application([ ???????????(r"/content/(.*)", web.StaticFileHandler, {"path": "/var/www"}), ???????]) ???The handler constructor requires a ``path`` argument, which specifies the ???local root directory of the content to be served. ???Note that a capture group in the regex is required to parse the value for ???the ``path`` argument to the get() method (different than the constructor ???argument above); see `URLSpec` for details. ???To serve a file like ``index.html`` automatically when a directory is ???requested, set ``static_handler_args=dict(default_filename="index.html")`` ???in your application settings, or add ``default_filename`` as an initializer ???argument for your ``StaticFileHandler``. ???To maximize the effectiveness of browser caching, this class supports ???versioned urls (by default using the argument ``?v=``). ?If a version ???is given, we instruct the browser to cache this file indefinitely. ???`make_static_url` (also available as `RequestHandler.static_url`) can ???be used to construct a versioned url. ???This handler is intended primarily for use in development and light-duty ???file serving; for heavy traffic it will be more efficient to use ???a dedicated static file server (such as nginx or Apache). ?We support ???the HTTP ``Accept-Ranges`` mechanism to return partial content (because ???some browsers require this functionality to be present to seek in ???HTML5 audio or video). ???**Subclassing notes** ???This class is designed to be extensible by subclassing, but because ???of the way static urls are generated with class methods rather than ???instance methods, the inheritance patterns are somewhat unusual. ???Be sure to use the ``@classmethod`` decorator when overriding a ???class method. ?Instance methods may use the attributes ``self.path`` ???``self.absolute_path``, and ``self.modified``. ???Subclasses should only override methods discussed in this section; ???overriding other methods is error-prone. ?Overriding ???``StaticFileHandler.get`` is particularly problematic due to the ???tight coupling with ``compute_etag`` and other methods. ???To change the way static urls are generated (e.g. to match the behavior ???of another server or CDN), override `make_static_url`, `parse_url_path`, ???`get_cache_time`, and/or `get_version`. ???To replace all interaction with the filesystem (e.g. to serve ???static content from a database), override `get_content`, ???`get_content_size`, `get_modified_time`, `get_absolute_path`, and ???`validate_absolute_path`. ???.. versionchanged:: 3.1 ??????Many of the methods for subclasses were added in Tornado 3.1. ???"""
关于前后端的两种渲染方式
模板渲染, 使用模板语言进行渲染
前后端分离, 前后端开发前定义好api接口, 使用ajax调用这些接口, 就能同时开发, 后端只管返回规定的数据
tornado.web.StaticFileHandler
是tornado用来提供静态资源文件的handler
import oscurrent_path = os.path.dirname(__file__)app = tornado.web.Application( ???[ ???????(r‘^/(.*?)$‘, StaticFileHandler, {"path":os.path.join(current_path, "templates"), "default_filename":"index.html"}), ???], ???static_path=os.path.join(current_path, "statics"),)
path : 用来提供
html
文件的根路径, 并在此目录中寻找在url中用正则表达式提取的文件名的值default_filename : 用来指定访问路由中未指明文件时, 默认提供的文件
static_path: 提供静态文件的位置
把以上信息配置好后, 项目应该就能拉起来了
tornado.web.StaticFileHandler
原文地址:https://www.cnblogs.com/1204guo/p/8453553.html