分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

tornado.web.StaticFileHandler

发布时间:2023-09-06 01:43责任编辑:彭小芳关键词:暂无标签
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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved