用于为具有实时重新加载功能的静态文件提供服务的web服务器库和命令行实用程序

httpwatcher的Python项目详细描述


概述

httpwatcher是一个库和命令行实用程序,用于启动 一个简单的http服务器,用于从特定根路径提供静态文件。 实时重新加载是通过web套接字触发的。

注意httpwatcher是为测试期间的开发人员准备的 他们的静态网站,并不是作为一个生产 网络服务器。

要求

要安装httpwatcher,您需要:

  • python 2.7+或python 3.5+
  • pipeasy_install

安装

当您的virtual environment处于活动状态时,运行 以下内容:

> pip install httpwatcher

要升级到最新版本的httpwatcher,只需:

> pip install -U httpwatcher

用法

httpwatcher可以从命令行使用,也可以作为 在您自己的python应用程序中放置库。

命令行用法

最快的启动和运行方式是查看当前文件夹 从http://localhost:5555开始提供您的内容,如下所示:

# Also opens your web browser at http://localhost:5555
> httpwatcher

# To get more help
> httpwatcher --help

所有可能的选项:

> httpwatcher --root /path/to/html \ # static root from which to serve files
              --watch "/path1,/path2"\ # comma-separated list of paths to watch (defaults to the static root)
              --host 127.0.0.1 \ # bind to 127.0.0.1
              --port 5556\ # bind to port 5556
              --base-path /blog/ \ # serve static content from http://127.0.0.1:5556/blog/
              --verbose \ # enable verbose debug logging
              --no-browser                # causes httpwatcher to not attempt to open your web browser automatically

库使用

确保将httpwatcher作为python的依赖项安装 项目,然后:

importhttpwatcher# Just watch /path/to/html, and serve from that same pathhttpwatcher.watch("/path/to/html")

注意HttpWatcherServer不同的是,httpwatcher.watch 函数会自动假定您要打开默认网站 位于服务站点的基本URL的浏览器。为了避免这种情况,请 以下内容:

importhttpwatcherhttpwatcher.watch("/path/to/html",open_browser=False)

直接使用watcher服务器并对i/o有更多的控制 循环:

fromhttpwatcherimportHttpWatcherServerfromtornado.ioloopimportIOLoopdefcustom_callback():print("Web server reloading!")server=HttpWatcherServer("/path/to/html",# serve files from the folder /path/to/htmlwatch_paths=["/path1","/path2"],# watch these paths for changeson_reload=custom_callback,# optionally specify a custom callback to be called just before the server reloadshost="127.0.0.1",# bind to host 127.0.0.1port=5556,# bind to port 5556server_base_path="/blog/",# serve static content from http://127.0.0.1:5556/blog/watcher_interval=1.0,# maximum reload frequency (seconds)recursive=True,# watch for changes in /path/to/html recursivelyopen_browser=True# automatically attempt to open a web browser (default: False for HttpWatcherServer))server.listen()try:# will keep serving until someone hits Ctrl+CIOLoop.current().start()exceptKeyboardInterrupt:server.shutdown()

httpwatcher.watch采用的参数与 HttpWatcherServer的构造函数参数(如上所述除外 之前,对于open_browser参数)。只是为了方便 方法来实例化并运行一个简单的HttpWatcherServer

内部加工

httpwatcher广泛使用 Tornado异步web框架 促进异步http和websocket服务器的结合。所有HTML 包含结束标记</body>的服务内容将 自动插入两个<script>标记,以便 websockets连接回服务器。

WebSockets端点位于 http://localhost:5555/httpwatcher默认情况下,javascript 便于重新加载的文件位于 http://localhost:5555/httpwatcher.min.js默认(取决于 您的主机和端口设置)。

背景

这个库是因为需要一个简单的web服务器,能够 提供具有实时重新加载功能的静态文件,同时还提供 能够从非标准基本路径(例如,从 http://somesite.com/blog/与总是 http://somesite.com)。更具体地说,这是用来 Statik-静态web 现场发电机。

那张livereload 图书馆曾经很好,直到真正需要修改 车轮从车上掉下来的地方。更多的功能单元测试 需要验证基本功能,并且更灵活 在某些方面需要,因此构建了httpwatcher

贡献

请随意贡献!分叉存储库,在 功能分支,然后提交拉取请求。

许可证

MIT许可证(MIT)

版权所有(c)2017 Thane Thomson

特此免费向任何获得 本软件和相关文档文件的副本 “软件”),无限制地处理软件,包括 但不限于使用、复制、修改、合并、发布, 分发、再授权和/或出售软件副本,以及 允许向其提供软件的人员这样做,但须遵守 以下条件:

上述版权公告及本许可公告须包括在内 在软件的所有副本或大部分中。

软件按“原样”提供,不作任何形式的保证 或implIED,包括但不限于 市场稳定性、特定用途的适用性和非侵权性。 在任何情况下,作者或版权持有人均不对任何 索赔、损害赔偿或其他责任,无论是在诉讼或合同中, 侵权行为或其他,由 软件或软件的使用或其他交易

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用Selenium Java查找筛选器窗格“铅笔图标”的元素时出现问题   分布式缓存l2上使用infinispan和hibernate的java连接锁   使用Java的DOM XML API解析XML中的符号和   java是解析和操作字符串的有效方法   java发布NewRelicMeterRegistry时如何过滤仪表   多维数组在java中读取文件后将数据值分组   java如何将httpClient配置为jsoup   java BreakIterator在Android中是如何工作的?   找不到maven GAE类:原因:java。lang.ClassNotFoundException应用程序标识cRedential$AppenginecRedential包装   Jlabel调整java大小   调试如何在VScode中的java类依赖项中设置断点   java正在获取文件夹名,而不是。mp3文件{Android}   java如何将从DiffieHellman类生成的AES密钥添加到使用该密钥的类